Oto jak to robię:
- Nazwy tabeli są małymi literami, wykorzystuje podkreślenia oddzielić słowa i są pojedyncze (np
foo
,foo_bar
itp - Generalnie (nie zawsze) mam PK z automatycznym zwiększaniem. Używam w następujący sposób:
tablename_id
(npfoo_id
,foo_bar_id
itp). - Gdy tabela zawiera kolumnę będącą kluczem obcym, po prostu kopiuję nazwę kolumny tego klucza z dowolnej tabeli, z której pochodzi. Na przykład, powiedzmy, że tabela
foo_bar
ma FKfoo_id
(gdziefoo_id
jest PKfoo
). - Definiując SK w celu wymuszania integralności referencyjnej, używam:
tablename_fk_columnname
(np. Kontynuując przykład 3, byłobyfoo_bar_foo_id
). Ponieważ jest to kombinacja nazwa tabeli / nazwa kolumny, gwarantujemy, że będzie ona unikalna w bazie danych. - Porządkuję kolumny w ten sposób: PKs, FKs, a pozostałe kolumny alfabetycznie
Czy istnieje lepszy, bardziej standardowy sposób, aby to zrobić?
id_tableB
=> oh bez kolumny o innej nazwieid
, spójność id_tableB
=> id_tableB
wygląda po prostu schludniej ... lub tak jak robi to OP: foo_id
=> foo_id
zamiast foo_id
=>id