![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Cały czas nie umiem się zdecydować nad konwencją nazewnictwa kolumn, zwłaszcza klucza głównego.
Ma to małe znaczenie dopóki nie będziemy robić łączeń na tabelach - czym większych tym poważniejsze komplikacje. 1. id i tylko id. + w miarę czytelne + dzięki analogii szybciej się pisze, kopiuje fragmenty kodu + przyda się przy pętlach - spore problemy z JOIN (wymaga tworzenia Aliasów, co jest dosyć uciążliwe) 2. tid czyli już coś mówi. Czyli np. dla użytkowników będzie to uid. + czytelniejsze od zwykłego id +/- Przy join już lepiej choć może się zdarzyć, że uid będzie pasował do dwóch różnych tabel. - nie ma już analogii. - przy join w tabeli dodawanej zwykle jest kolumna łącznikowa czyli np. uid tak więc w jednym miejscu problem znika, w drugim się pojawia choć mniejszy bo alias już nie jest potrzebny bo uid tu i tu będzie taki sam, a po prostu trzeba będzie poprzedzać uid w ON nazwą tabeli 3. table_id czyli już typowo zależne od nazwy tabeli (może bez prefixu). Czyli np. dla użytkowników będzie to user_id. + bardzo czytelne + Przy join nie ma szans na problemy, przynajmniej w ID ale widziałem też pomysły aby każdą kolumnę takim prefixem obdarowywać. - troszkę brzydkie rozwiązanie bo zwykle nazwa tabeli jest w liczbie mnogiej i powinno być tak naprawdę users_id .. - nie ma już analogii (choć znając nazwy tabeli można np. w pętli stworzyć analogiczne zapytania z jednym wyjątkiem patrz wyżej).. - przy join w tabeli dodawanej zwykle jest kolumna łącznikowa czyli np. user_id tak więc w jednym miejscu problem znika, w drugim się pojawia choć mniejszy bo alias już nie jest potrzebny bo user_id tu i tu będzie taki sam, a po prostu trzeba będzie poprzedzać user_id w ON nazwą tabeli Co u Was? (IMG:style_emoticons/default/smile.gif) Ten post edytował markonix 16.12.2012, 14:22:02 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Używam zawsze ID.
Parę słów komentarza: 1. To już naprawdę jest kwestia osobistej preferencji i ewentualnie dostosowania do konwencji nazewnictwa w istniejącej bazie. Widziałem już kwiatki typu: ID, Username, ale user_profile. 2. Problem przy joinach mogą pojawić się z wykorzystaniem każdej z metod. Nie ma problemów, kiedy stosujesz zapis: Table.ID = AnotherTable.ID, czyli poprzedzasz nazwę kolumny nazwą tabeli. 3. Używaj tego, co jest dla Ciebie wygodne - tak naprawdę tylko to ma znaczenie, w momencie kiedy nie musisz się dostosowywać do obowiązującej konwencji. 4. Każda konwencja jest lepsza, niż jej brak. Tyle ode mnie. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Osobiście wszędzie używam nazwy id dla klucza głównego i aliasów dla tabel w zapytaniach. Tak naprawdę przy większej ilości złączeń nadanie nazwy user_id już trzem kolumnom w trzech różnych tabelach niczego nie ułatwi. To chyba kwestia gustu.
BTW: W punkcie 1 alias również nie jest potrzebny przy złączeniach, ale trzeba poprzedzić nazwy kolumn nazwami tabel. No i pamiętaj, że jeśli w dwóch tabelach kolumny mają takie same nazwy, to łącząc te tabele można użyć klauzuli USING, zamiast ON. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Ja używam nazwatabeliId. Przede wszystkim największe plusy dla mnie to czytelność i wykluczenie powtarzania się nazwy kolumny.
Ten post edytował Damonsson 16.12.2012, 15:00:09 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
ja stosuje następujące "reguły":
1)nazwy tabel w liczbie mnogiej, a nazwy kolumn w liczbie pojedynczej 2)każda kolumna ma prefiks będący nazwą tabeli w liczbie pojedynczej 3)camelCase czyli np. w tabeli users mam kolumny userId, userName, ... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 10:43 |