1831 Stimmen

Dilemma bei der Benennung von Tabellen: Singular- und Plural-Namen

Nach akademischer Auffassung sollten Tabellennamen die Einzahl der Entität sein, deren Attribute sie speichern.

Ich mag kein T-SQL, das eckige Klammern um Namen erfordert, aber ich habe eine Users Tabelle in den Singular umzuwandeln, was dazu führt, dass diejenigen, die die Tabelle verwenden, manchmal Klammern verwenden müssen.

Mein Bauchgefühl sagt mir, dass es korrekter ist, beim Singular zu bleiben, aber mein Bauchgefühl sagt mir auch, dass Klammern unerwünschte Elemente wie Spaltennamen mit Leerzeichen usw. anzeigen.

Soll ich bleiben, oder soll ich gehen?

113voto

Wie wäre es mit diesem einfachen Beispiel?

SELECT Customer.Name, Customer.Address FROM Customer WHERE Customer.Name > "def"

vs.

SELECT Customers.Name, Customers.Address FROM Customers WHERE Customers.Name > "def"

Das SQL in letzterem klingt seltsamer als in ersterem.

Ich stimme für Einzigartig .

74voto

Adam Carr Punkte 2946

Ich bin der festen Überzeugung, dass in einem Entity-Relationship-Diagramm die Entität mit einem singulären Namen dargestellt werden sollte, ähnlich wie ein Klassenname singulär ist. Sobald sie instanziiert ist, spiegelt der Name ihre Instanz wider. Bei Datenbanken ist die Entität, wenn sie in eine Tabelle (eine Sammlung von Entitäten oder Datensätzen) umgewandelt wird, also plural. Die Entität User wird in die Tabelle Users eingefügt. Ich stimme mit anderen überein, die vorgeschlagen haben, dass der Name User in Employee oder etwas anderes, das besser zu Ihrem Szenario passt, geändert werden könnte.

Dies ist in einer SQL-Anweisung sinnvoller, da Sie aus einer Gruppe von Datensätzen auswählen, und wenn der Tabellenname nur einmal vorkommt, lässt er sich nicht gut lesen.

54voto

Gulzar Nazim Punkte 51098

IMHO sollten Tabellennamen sein Plural wie Kunden .

Klassennamen sollten Singular sein wie Kunde wenn sie auf eine Zeile in der Datei Kunden Tisch.

46voto

Ash Machine Punkte 9180

Ich bleibe bei Einzigartig für Tabellennamen und jede Programmiereinheit.

Der Grund? Die Tatsache, dass es im Englischen unregelmäßige Plurale gibt wie Maus Mäuse y Schafe Schafe . Dann, wenn ich eine Sammlung verwende ich einfach Mäuse ou Schafe und machen Sie weiter.

Es hilft wirklich, die Vielfalt hervorzuheben, und ich kann leicht und programmatisch bestimmen, wie die Sammlung von Dingen aussehen würde.

Meine Regel lautet also: Alles ist singulär, jede Sammlung von Dingen ist singulär mit einem s angehängt. Hilft auch bei ORMs.

42voto

Jacob Lorensen Punkte 65

Singular. Ich glaube nicht an ein Argument, bei dem es darum geht, was am logischsten ist - jeder Mensch hält seine eigene Präferenz für die logischste. Egal, was Sie tun, es ist ein Chaos, wählen Sie einfach eine Konvention und halten Sie sich daran. Wir versuchen, eine Sprache mit sehr unregelmäßiger Grammatik und Semantik (normale gesprochene und geschriebene Sprache) auf eine sehr regelmäßige Grammatik (SQL) mit sehr spezifischer Semantik abzubilden.

Mein Hauptargument ist, dass ich die Tabellen nicht als eine Menge, sondern als Beziehungen betrachte.

Also, die AppUser Beziehung sagt aus, welche Entitäten AppUsers .

Le site AppUserGroup Beziehung sagt mir, welche Entitäten AppUserGroups

Le site AppUser_AppUserGroup Beziehung sagt mir, wie die AppUsers y AppUserGroups verwandt sind.

Le site AppUserGroup_AppUserGroup Beziehung sagt mir, wie AppUserGroups y AppUserGroups miteinander verbunden sind (d. h. Gruppen sind Mitglieder von Gruppen).

Mit anderen Worten: Wenn ich über Entitäten und ihre Beziehungen nachdenke, denke ich an Beziehungen im Singular, aber wenn ich an die Entitäten in Sammlungen oder Mengen denke, sind die Sammlungen oder Mengen natürlich im Plural.

In meinem Code und im Datenbankschema verwende ich also Singular. In textlichen Beschreibungen verwende ich aus Gründen der besseren Lesbarkeit den Plural - und verwende dann Schriftarten usw., um den Tabellen-/Beziehungsnamen vom Plural s zu unterscheiden.

Ich betrachte es gerne als chaotisch, aber systematisch - und so gibt es immer einen systematisch generierten Namen für die Beziehung, die ich ausdrücken möchte, was für mich sehr wichtig ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X