Wir benennen immer Nachschlagetabellen - wie Länder, Städte, Regionen usw. - wie folgt:
EntityName_LK
OR LK_EntityName
(Länder_LK ODER LK_Länder)
Aber ich frage, ob jemand bessere Namenskonvertierungen für Lookup-Tabellen hat?
Bearbeiten :
Wir denken, Postfix oder Präfix wie einen Konflikt zu lösen:
wenn wir User
-Tabellen und Nachschlagetabelle für UserTypes
(ID-Name) haben und wir eine Beziehung viele zu viele zwischen User
& amp; UserTypes
, die uns zu einer Tabelle machen, die wir wie Types_For_User
benennen können, was zu Verwirrung zwischen UserTypes
& amp; Types_For_User
Wir möchten also die Nachschlagetabelle UserTypes
so aussehen lassen, dass UserTypesLK
für alle sichtbar ist
Bevor Sie sich entscheiden, dass Sie den "Lookup" -Moniker benötigen, sollten Sie versuchen zu verstehen, warum Sie einige Tabellen als "Lookups" und nicht andere bezeichnen. Jeder Tisch sollte eine Einheit für sich darstellen.
Was passiert, wenn eine Tabelle, die als "Lookup" bezeichnet wurde, im Umfang wächst und nicht länger als "Lookup" betrachtet wird? Sie müssen entweder den Tabellennamen ändern, was lästig sein kann, oder ihn so lassen, wie er ist und jedem erklären müssen, dass eine gegebene Tabelle nicht wirklich ein "Lookup" ist.
Ein häufiges Szenario, das in den Kommentaren zu einer Junction-Tabelle erwähnt wird. Angenommen, ein Benutzer kann mehrere "Typen" haben, die in einer Junction-Tabelle mit zwei Fremdschlüsseln ausgedrückt werden. Sollte diese Tabelle User_UserTypes
heißen? Zu diesem Szenario würde ich zuerst sagen, dass ich es vorziehe, das Suffix Member
in der Junction-Tabelle zu verwenden. Also hätten wir Users
, UserTypes
, UserTypeMembers
. Zweitens ist das Wort "Typ" in diesem Zusammenhang ziemlich allgemein gehalten. Bedeutet ein UserType
wirklich eine Rolle? Der Begriff, den Sie verwenden, kann den Unterschied ausmachen. Wenn UserTypes
wirklich Rollen sind, werden unsere Tabellennamen Users
, Roles
, RoleMembers
, was ziemlich klar erscheint.
Jede Tabelle kann eine Nachschlagetabelle werden. Berücksichtigen Sie, dass eine Person in einer Rechnungstabelle nachschlägt. Meiner Meinung nach sollten Tabellen nur den Namen der (singulären) Entität genannt werden, z. Person, Rechnung.
Was Sie wollen, ist ein Standard für die Spaltennamen und Einschränkungen wie
%Vor%Am Ende des Tages hängt alles von persönlichen Präferenzen ab (wenn du es diktieren kannst) oder von Teamstandards.
aktualisiert
Wenn Sie Nachschlagevorgänge nur für Entitäten wie Invoice_Terms haben, die eine Suche aus einer Liste von 4 Szenarien sind, könnten Sie sie als Invoice_LK_Terms benennen, wodurch sie unter dem Namen Name erscheint, der unter Rechnung gruppiert ist. Eine andere Möglichkeit besteht darin, eine einzige Nachschlagetabelle für einfache Einzelwert-Suchvorgänge zu haben, die durch die Funktion (Tabelle + Spalte) getrennt sind, für die sie vorgesehen ist, z. B.
%Vor%Hier sind zwei Bedenken, ob ein Präfix oder Suffix verwendet werden soll.
Soll in einer sortierten Liste von Tabellen die LK-Tabellen zusammen sein oder sollen alle zu EntityName gehörenden Tabellen zusammen angezeigt werden
Wenn Sie in Umgebungen mit automatischer Vervollständigung programmieren, möchten Sie wahrscheinlich "LK" eingeben, um die Liste der Tabellen oder den Anfang von EntityName zu erhalten?
Ich denke, es gibt Argumente für beide, aber ich würde mit EntityName beginnen.
Ein Bereich, in dem Tabellenbenennungskonventionen helfen können, ist die Datenmigration zwischen Umgebungen. Wir müssen oft Daten in Nachschlagetabellen (die Werte einschränken, die in anderen Tabellen vorkommen können) zusammen mit Schemaänderungen verschieben, wenn sich diese erlaubten Wertelisten ändern. Momentan nennen wir Lookup-Tabellen nicht anders, aber wir denken darüber nach, um zu verhindern, dass der Migrations-Typ fragt: "Welche Tabellen sind Lookup-Tabellen?" jedes Mal.
Tags und Links sql-server naming-conventions