Ich habe eine praktische Frage bezüglich der Benennung von Tabellenfeldern in einer Datenbank. Zum Beispiel habe ich zwei Tabellen:Namenskonvention für Tabellenfelder und SQL-Anweisungen
student (id int; name varchar(30))
teacher (id int, s_id int; name varchar(30))
Es gibt beide "ID" und "Name" in zwei Tabellen. In der SQL-Anweisung ist es für die beiden nicht eindeutig, wenn keine Tabellennamen vorangestellt sind. Zwei Optionen:
- Verwendung Tabellenname als Präfix eines Feldes in SQL ‚wo‘ Klausel
- Verwendung Präfix Feldnamen in Tabellen, so dass kein Präfix wird in ‚where‘ Klausel verwendet werden.
Welches ist besser?
Ja, qualifiziere immer ** alle ** Spaltenreferenzen in einer Abfrage. Es verhindert, dass die Abfrage in Zukunft unterbrochen wird, wenn jemand eine Spalte in einer Tabelle hinzufügt (wodurch mehrdeutige Spaltenreferenzfehler eingeführt werden). Und es macht es für einen späteren Leser leichter, die SQL zu entziffern ... die unqualifizierte Referenz auf die 'foobar'-Spalte ... ist, dass ein Verweis auf eine Spalte in der 'feed'-Tabelle, der' fi'-Tabelle oder der ' FO' Tisch? (Wage es nicht, mich durch die Tabellendefinitionen jagen zu lassen, um herauszufinden, auf welche Tabelle ich mich beziehe.) Aber meine persönliche Vorliebe besteht darin, die Spalte "id" zu benennen, wo es der primäre (oder eindeutige) Schlüssel ist. – spencer7593