Fügen Sie jedem Feld in einer Tabelle einen abgekürzten Tabellennamen voran?
Beispiel:
%Vor%Oder nennen Sie Ihre Felder minimal?
%Vor%Wenn Sie beides verwendet haben, welches Format hat Ihnen auf lange Sicht am meisten geholfen?
Bearbeiten: Diese Frage scheint keine eindeutige Antwort zu haben und beide Seiten haben gute Punkte. Aber ich habe die Frage zu lange offen gehalten und vielleicht ist es an der Zeit, eine Antwort als akzeptiert zu markieren. Ich markiere daher die höchste Stimme als akzeptiert.
Tu das nicht. Es ist überflüssig und führt auf lange Sicht zu Frustration.
Das einzige Feld, in dem Sie anwenden könnte, könnte id
sein, weil user_id
offensichtlich die ID des Benutzers wäre und das Schreiben von Joins in SQL vereinfachen würde. Aber ich würde das nicht mal machen.
Sie müssen es nicht mehr tun, und Sie sollten es wirklich nicht tun. Die einzige Ausnahme als saua darauf hingewiesen könnte das ID-Feld für die Suche nach Klarheit von Joins sein.
Das Konzept der Präfixierung von Feldnamen mit dem Tabellennamen stammt aus der alten Zeit von Legacy-Systemen, wenn jedes Feld in der gesamten Datenbank eindeutig sein muss.
Wenn Sie also nicht mit Legacy-Systemen arbeiten, die erfordern, dass jedes Feld in der gesamten Datenbank einen eindeutigen Namen hat; mach es nicht.
Ich würde es nicht tun. Wenn Sie wissen wollen, zu welcher Tabelle ein Feld gehört, können Sie Ihre Abfragen immer als
schreiben %Vor%Aber stellen Sie sich vor, Sie entscheiden sich aus irgendeinem Grund, eine Ihrer Tabellen umzubenennen (vielleicht von "Benutzer" zu "Kunde"). Sie müssten auch alle Felder umbenennen, um konsistent zu bleiben.
Meine Meinung: Es gibt keinen guten Grund, warum Sie es tun sollten, und mehrere gute Gründe, es nicht zu tun.
Wir verwenden auch keine abgekürzten Tabellenpräfixe und ich würde es auch nicht empfehlen.
Es gibt jedoch eine Situation, in der wir Folgendes tun: Felder reservieren .
%Vor%Kurzer Hintergrund: Unsere Datenbank hat mehr als 250 Tabellen und wir setzen die meisten davon in Reservespalten ein, um sie für zukünftige Feature-Implementierungen zu verwenden. Wie Sie sich vorstellen können, würden Sie ohne Präfixe 50 Reserve_Field_Alpha3 mit völlig anderer Bedeutung, aber demselben Namen in Ihrem Code haben. Es ist schon schwer wie es jetzt ist, aber ohne Präfixe wäre es schlimmer.
Das Präfix für Spaltennamen kann eine gute Übung sein. Wenn Sie an einer formellen (und wahrscheinlich großen) Datenbank arbeiten und sich auf ISO 11179 (insbesondere das Konzept der Datenelementnamen) konzentrieren, sollten Sie den vollen drei (oder vier) Teilnamen eingeben: Objekt - Eigenschaft - Repräsentationsbegriff. (Der vierte optionale Teil ist ein Qualifikationsmerkmal.) Zum Beispiel "user_first_name". Auf diese Weise haben Sie Konsistenz zwischen Ihrem Data Dictionary und dem Datenbankschema. Ich würde dies aus den bereits genannten Gründen nicht für kleinere Datenbanken tun, aber in einem komplexen Schema reduziert dies ein gewisses Fehlerrisiko.
Wenn ich das Feld "ordinal" zu einer Tabelle hinzufüge, möchte ich ein Präfix hinzufügen, so dass ich keine ordinalen Felder von anderen Tabellen in JOINS aliasieren muss. Es ist manchmal nützlich für JOINS ... nicht sicher, ob ich andere Vorteile gesehen habe.
MediaWiki (die Wikipedia-Software) verwendet diese Konvention. Laden Sie die Quelle herunter. Sie beschränken sich auf ein zweistelliges Präfix.
Ich empfehle die Praxis jedoch nicht. Für die meisten Datenbanken ist es nicht notwendig.
Ich würde empfehlen, bei Tabellenaliasen zu bleiben, wie:
%Vor%Die Vorteile:
Sie erhalten eine leicht verständliche Liste von Feldern, die Sie auswählen, und welche Tabellen Sie aus
Vermeiden Sie lange oder schwer zu verstehende Tabellennamen und ersetzen Sie sie durch einen kurzen und verständlichen Namen (den Sie beim Erstellen der Tabelle hätten verwenden sollen)
LEFT JOIN table_with_the_avatars.user_id ON user.user_id = table_with_the_avatars.avatars_user_i
Persönlich wäre meine Spalte in der Tabelle 'user' einfach 'id'.
Aber beliebige Schlüsselspalten in verschiedenen Tabellen, die auf diese Spalte verweisen, würde ich die Spalte 'user_id' nennen.
Sie könnten also etwas wie folgt haben:
%Vor%Es ist in Ordnung, Felder so zu benennen (minimal), aber für Primärschlüssel und Untertitel / Namen. Wenn Sie den gesamten Primärschlüssel konsistent als ID benennen und als Name benennen, degeneriert die Konstruktion der Abfrage in überflüssige Aliase:
%Vor%Da das Verbinden von Tabellen und Anzeigen der Beschriftung / des Namens der Entität eher die Norm als die Ausnahme ist, benenne ich meinen Primärschlüssel in voller Form und für das Feld caption / name den gleichen Namen wie den Tabellennamen.
%Vor%Ihre Abfrage enthält also keine überflüssigen Aliase:
%Vor%Die Präfix-Variante dauert nur länger und macht das Lesen von SQL-Anweisungen mit vielen Feldern schwieriger.
Selbst wenn Sie aus mehreren Tabellen auswählen, haben Sie nur den Vorteil, dass Sie nicht mehrdeutige Felder mit dem Tabellennamen versehen müssen. Aber
%Vor%unterscheidet sich nicht sehr von
%Vor%Der Vorteil von vielen nicht eindeutigen Feldern in Ihren Abfragen wird schnell durch den Aufwand aufgezehrt, dass Sie den Tabellennamen jedes Mal eingeben müssen, wenn Sie einen Spaltennamen verwenden.
Es ist eine geniale Praxis:
amount
bedeutet
( transactions
, incomes
) - außer
sie sind xac_amount
und
%Code%. Die meisten Abfrage-Tools tun dies
Ausgabealias nicht zusammen mit dem
Feldname. inc_amount
als Alias für
x
, ein anderer wird verwendet
transaction
und so weiter. Tatsächlich sind Präfixe nur erzwungene Tabellenaliasnamen, so dass Sie leicht sehen können, welches Feld zu welcher Tabelle gehört.
Wenn Sie eine UNIQUE PREFIX für jede Tabelle verwenden,
Tags und Links database-design schema