Aus der Perspektive eines formalen Datenwörterbuchs würde ich das Datenelement benennen invoice_ID
. Im Allgemeinen ist ein Datenelementname im Datenwörterbuch eindeutig und hat im Idealfall durchgehend denselben Namen, obwohl manchmal zusätzliche qualifizierende Begriffe basierend auf dem Kontext erforderlich sein können, z. B. könnte das genannte Datenelement employee_ID
zweimal im Organigramm verwendet und daher als qualifiziert werden supervisor_employee_ID
und subordinate_employee_ID
jeweils.
Namenskonventionen sind natürlich subjektiv und eine Frage des Stils. Ich finde, dass ISO / IEC 11179-Richtlinien ein nützlicher Ausgangspunkt sind.
Für das DBMS sehe ich Tabellen als Sammlungen von Entiten (mit Ausnahme derjenigen, die immer nur eine Zeile enthalten, z. B. cofig-Tabelle, Konstantentabelle usw.), z. B. würde die Tabelle, in der my employee_ID
der Schlüssel ist, benannt werden Personnel
. Die TableNameID
Konvention funktioniert also nicht sofort für mich.
Ich habe den TableName.ID=PK TableNameID=FK
Stil gesehen, der bei großen Datenmodellen verwendet wird, und muss sagen, dass ich ihn etwas verwirrend finde: Ich bevorzuge es, dass der Name eines Bezeichners überall gleich ist, dh der Name ändert sich nicht basierend auf der Tabelle, in der er gerade angezeigt wird Der oben genannte Stil scheint in den Läden verwendet zu werden, die jeder Tabelle eine IDENTITY
Spalte (automatische Inkrementierung) hinzufügen, während natürliche und zusammengesetzte Schlüssel in Fremdschlüsseln vermieden werden. Diese Shops verfügen in der Regel weder über formale Datenwörterbücher noch bauen sie aus Datenmodellen auf. Auch dies ist nur eine Frage des Stils und eine, die ich persönlich nicht abonniere. Letztendlich ist es also nichts für mich.
Trotzdem kann ich sehen, dass das Qualifikationsmerkmal manchmal aus dem Spaltennamen entfernt wird, wenn der Name der Tabelle einen Kontext dafür bereitstellt, z. B. kann das genannte Element employee_last_name
einfach last_name
in die Personnel
Tabelle aufgenommen werden. Das Grundprinzip hier ist, dass die Domain "Nachnamen von Personen" ist und eher UNION
mit last_name
Spalten aus anderen Tabellen als mit einem Fremdschlüssel in einer anderen Tabelle verwendet wird, aber andererseits ... Ich könnte meine Meinung ändern, manchmal kann man nie sagen. Das ist die Sache: Datenmodellierung ist Teil Kunst, Teil Wissenschaft.