So mache ich das:
- Tabellennamen sind niedriger Fall verwendet Unterstrichen um Worte zu trennen, und sind Einzahl (zB
foo
,foo_bar
usw. - Ich habe im Allgemeinen (nicht immer) eine Auto-Inkrement-PK. Ich verwende die folgende Konvention:
tablename_id
(zBfoo_id
,foo_bar_id
usw.). - Wenn eine Tabelle eine Spalte enthält, die ein Fremdschlüssel ist, kopiere ich einfach den Spaltennamen dieses Schlüssels aus der Tabelle, aus der er stammt. Angenommen, die Tabelle
foo_bar
hat die FKfoo_id
(wofoo_id
ist die PK vonfoo
). - Bei der Definition von FKs zur Durchsetzung der referenziellen Integrität verwende ich Folgendes:
tablename_fk_columnname
(z. B. Beispiel 3foo_bar_foo_id
). Da es sich um eine Kombination aus Tabellenname und Spaltenname handelt, ist garantiert, dass sie innerhalb der Datenbank eindeutig ist. - Ich ordne die Spalten wie folgt: PKs, FKs, dann den Rest der Spalten alphabetisch
Gibt es einen besseren, standardisierteren Weg, dies zu tun?
id_tableB
=> oh keine anders benannte Spalte zu haben id
, sieht die Konsistenz von id_tableB
=> id_tableB
einfach ordentlicher aus ... oder wie OP es tut: foo_id
=> foo_id
statt foo_id
=>id