Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Symfony - tinyint jako klucz, relacja z drugą tabelą
Malinaa
post 1.07.2021, 21:18:13
Post #1





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Witam, mam encje i tworzę kolumnę kategorie

/**
* @ORM\ManyToOne(targetEntity=DbmGalleriesCategory::class, inversedBy="dbmGalleries")
* @ORM\JoinColumn(nullable=false)
*/
private $category;

po utworzeniu migracji daje mi to w tabeli bazy danych typ: int(11)

Nie potrzebne jest tu jednak int(11) wystarczy tinyint(2),
wszystkich kategorii jest mniej iż 100 i nigdy więcej tu nie będzie.

Jak zmienić encje, aby po migracji dała w bazie danych typ: tinyint(2) ?

Ten post edytował Malinaa 1.07.2021, 21:19:39


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
nospor
post 2.07.2021, 08:54:17
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




* @ORM\Column(type="tinyint")

Dokumentacja czy google naprawde nie boli wink.gif

Nie mniej jednak powinienies miec na uwadze ze albo mozesz miec problemy albo juz beda bo

Cytat
There is no tinyint type in Doctrine 2. Reason is straightforward:

A Doctrine type defines the conversion between PHP and SQL types, independent from the database vendor you are using. All Mapping Types that ship with Doctrine are fully portable between the supported database systems.

You should pick one of these:

integer: Type that maps a SQL INT to a PHP integer.
smallint: Type that maps a database SMALLINT to a PHP integer.
bigint: Type that maps a database BIGINT to a PHP string.

Ale dawno sie nie bawilem w doctrine wiec moze to olali


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Malinaa
post 3.07.2021, 12:58:29
Post #3





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Dokumentacja czytelna jako tako wink.gif w Google znalazłem info, że tinyimt w Doctrine stosuje się tylko jako boolean true lub false,
więc próbowałem z smalllint, ale tu też nie jest dobrze - po zmianie klucza z integer kolumna przestaje być kluczem i zaś trzeba rzeźbić ręcznie, aby z tego wyjść.
Wystarczy, że chcesz coś zoptymalizować i już jest problem (dziadowskie to Doctrine jak cholera), musisz robić standardowo chałę i wówczas jest no problem - noo działa sukces.

Zostawię int(11) - działa, więc co chcę więcej (będę mieć fajną cięższą bazę - no problem).


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
Pyton_000
post 6.07.2021, 16:04:12
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Primo jeśli chcesz mieć smallint to musisz zmienić i w tabeli źródłowej i w tabeli dowiązanej (FK wymaga tego samego typu)
Secundo zawsze możesz sobie migrację napisać sam która to wytworzy i nie musisz się opierać o doctrynowy Diff
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 30.06.2025 - 01:00