Im Fall von Oracle, möchten Sie nicht generische Spalten ‚id‘ oder ‚name‘ oder irgendetwas nennen.
Das Problem ist, dass Oracle in älteren Versionen standardmäßig versucht, Tabellen anhand ähnlicher Spaltennamen zu verknüpfen. Wenn ich also alles richtig benannt habe, habe ich auch die Standardverbindungsklausel zwischen meinen Tabellen angegeben.
Aber auch wenn Sie nicht Oracle verwenden, indem sie nicht Namen chosing , die in mehreren Tabellen erscheinen, es bedeutet auch , dass Sie nicht dann durch die Mühe machen müssen , um jedes Mal von Aliasing Sie wählen über zwei Tabellen zu tun haben:
SELECT
instrument.name as instrument_name,
instrument.abbr as instrument_abbr,
source.name as source_name,
source.abbr as source_abbr,
...
FROM ...
Wenn also Mehrtabellenauswahlen die Norm sind, ersparen längere Spaltennamen die Eingabe. (Wenn Sie jeweils nur eine Tabelle verwenden ... benötigen Sie wirklich sogar eine relationale Datenbank?)
... und das Speichern der Eingabe bringt uns zu einem weiteren Problem in Oracle - zumindest in 8i (der aktuellen Version, als ich an den Kursen zu Oracle SQL - Optimierung und Datenmodellierung teilgenommen habe). Das Zwischenspeichern von Ausführungsplänen basiert nur auf den ersten so vielen Zeichen der query (kann sich nicht an den exakten Wert erinnern ... 1024?). Wenn Sie also Abfragen haben, die sich nur am Ende der where-Klausel um etwas ändern, und eine wirklich lange Liste von Spalten, die Sie extrahieren, dann haben Sie kann auf einen Leistungstreffer stoßen, da der Ausführungsplan nicht korrekt zwischengespeichert werden kann.
Oracle hatte einen Leitfaden zur Auswahl der angeblich guten Tabellen- und Spaltennamen, der im Grunde genommen ein Leitfaden zum Entfernen von Buchstaben ist, bis es sich um 5 bis 8 Zeichen handelt, aber ich habe mich nie darum gekümmert.
...
Wie die Dinge anders laufen:
- Spalten sind immer singulär (Tabellen sind immer plural)
- Alle Namen werden in Kleinbuchstaben geschrieben, nur für den Fall, dass zwischen Groß- und Kleinschreibung unterschieden wird
- Verwenden Sie daher Unterstriche anstelle des Kamelkastens.
Update : Für diejenigen, die mit dem Join-Verhalten von Oracle nicht vertraut sind, siehe das letzte Beispiel zur Beherrschung von Oracle SQL: Join-Bedingungen , in dem Folgendes erwähnt wird:
Was ist passiert? Der Grund liegt darin, dass diese beiden Tabellen neben supplier_id ein weiteres Spaltenpaar mit einem gemeinsamen Namen haben. Diese Spalte heißt name. Wenn Sie also einen natürlichen Join zwischen dem Lieferanten und den Teiletabellen anfordern, erfolgt der Join nicht nur durch Gleichsetzen der Spalte supplier_id der beiden Tabellen, sondern auch durch Gleichsetzen der Namensspalte aus den beiden Tabellen. Da kein Lieferantenname mit einem Teilenamen desselben Lieferanten identisch ist, werden von der Abfrage keine Zeilen zurückgegeben.
Unter der 'alten Join-Syntax' (8i und früher) war 'NATURAL JOIN' das Standard-Join-Verhalten, und ich glaube, es ist immer noch so, wenn Sie keine Join-Bedingung angeben. Als 'NATURAL JOIN' in 9i eine offizielle Option war, wurde generell empfohlen, es nicht zu verwenden , da eine schlechte Spaltenbenennung Sie durcheinander bringen kann. Ich befürworte daher gute Spaltennamen.