it-swarm.com.de

Plural vs Singular Table Name

Wie soll ich meine Tabellen beim Erstellen einer neuen Datenbank benennen?

Singular: Client oder Plural: Clients?

43

Wie du willst. Sei einfach konsequent.

Persönlich Ich bevorzuge Singular basierend auf dem, was jede * Zeile "speichert: Bestellung, Produkt, Benutzer, Artikel usw.

Dies entspricht meiner Modellierung (über Objektrollenmodellierung), bei der ich einzelne Entitäten/Typen verwende.

Bearbeiten:

Ein Grund ist, dass der Plural fehlschlägt, wenn Sie Verknüpfungstabellen haben:
Orders, Products würde OrderProducts oder OrdersProducts ergeben. Beides klingt nicht richtig

Oder Verlaufstabellen (dafür können Sie natürlich Schemata verwenden):
Orders -> OrdersHistory oder (nein!) OrdersHistories? Wäre Order-> OrderHistory nicht besser?

44
gbn

In Bezug auf Singular- und Plural-Tabellennamen scheint das Thema kontrovers zu sein, sollte es aber nicht sein.

Während eine Tabelle eine Sammlung mehrerer Datensätze ist, wird eine Tabelle nach der Definition des einen Datensatztyps benannt, den sie enthält. Wenn eine Tabelle einen anderen Namen als den darin enthaltenen Datensatztyp haben darf, können Sie der Tabelle einen Pluralnamen geben, sodass Sie beispielsweise eine Employees-Tabelle mit mehreren Employee-Datensätzen haben können. Der SQL-Designer hat jedoch keine separaten Namen für Tabellen und Datensatztypen angegeben.

Bei objektorientierten Programmen, die die Daten verwenden, läuft es logischer ab, wenn der Name eines Datensatztyps (und im weiteren Sinne der Tabellenname) singulär gehalten wird, da er dem Namen der Klasse entspricht, mit der Sie einen Datensatz beschreiben würden .

Wenn Sie dann eine Sammlung im Programm identifizieren möchten, können Sie einen Plural verwenden oder besser einen geeigneten Modifikator verwenden, z. B. EmployeeList oder EmployeeArray.

Es gibt auch ein Problem mit unregelmäßigen Pluralformen für die automatische Codegenerierung und Programmierer mit unterschiedlichen sprachlichen Hintergründen oder Vorstellungen über die Bildung von Pluralformen in einem Programm.

Die englische Sprache ist keine gute und richtige Programmiersprache, und der Versuch, Datenbank- und Programmanweisungen an Englisch anzupassen, weil es besser klingt, eine dieser Anweisungen zu lesen, ist ein Fehler.

8
Bruce Patin

Genau wie @ gbn's Antwort Ich denke, das ist am meisten eine Frage der Vorlieben und genau wie er empfehle ich, dass Sie jede Wahl, die Sie getroffen haben, überall anwenden (zumindest in dieser Datenbank). Konsistenz ist es wert.

Ich bevorzuge jedoch, dass ein Plural in SELECT -Anweisungen besser klingt:

SELECT Id, Name, Status 
FROM   Persons
WHERE  Status <> 5  --5 meaning deleted

Ich meine, zumindest in diesem Fall befinden sich mehrere Personen in der Tabelle und einige von ihnen werden an den Kunden zurückgegeben.

5
Andrei Rînea

"order" ist ein reserviertes Wort. "Bestellungen" gibt es nicht

"Benutzer" ist ein reserviertes Wort. "Benutzer" ist nicht

"Sitzung" ist ein reserviertes Wort. "Sessions" gibt es nicht

"Ergebnis" ist ein reserviertes Wort. "Ergebnisse" ist nicht

"relativ" ist ein reserviertes Wort. "Verwandte" gibt es nicht

...

Diese Wörter scheinen häufig in der Branchendatenbank enthalten zu sein. Mehrere Wörter scheinen als Schlüsselwörter weniger verbreitet zu sein als einzelne Wörter. Daher kann es vorteilhaft sein, mehrere Tabellennamen zu verwenden, um Konflikte mit SQL-Schlüsselwörtern zu vermeiden.

5
Neil McGuigan

Ich glaube, SQL-Tabelle sollte mehrere Namen haben. Es liest sich einfach viel besser.

Eine Tabelle mit Buchaufzeichnungen sollte als Bücher bezeichnet werden. Das ORM sollte dieselbe Konvention verwenden. Das Buchobjekt ist eine Sammlung und hat Vorrang vor allen Datensätzen in der Büchertabelle. Ein Buchobjekt steht einem einzelnen Datensatz vor.

Dies macht die Codierung natürlicher.

select name, publication_date from books where publication_date > '2000-01-01';

books = Books()
for book in books.get("publication_date >= '2000-01-01'"):
    print book.name
1
dlink

Nachdem ich einige Jahre mit Programmierung gearbeitet habe, bin ich zu dem Schluss gekommen, dass Pluralisierung eine unnötige Komplikation ist. Meiner Meinung nach sollte ein Programmierer gemäß der Philosophie von KISS] aus Zeit- und Effizienzgründen nach der faulsten und einfachsten Lösung für alle Probleme streben. Daher benötigt Singular in allen Szenarien weniger Arbeit.

1
ColacX

Wir betrachten die Dinge aus verschiedenen Perspektiven, und ich denke, die beiden Lager sind gekennzeichnet durch:

Singular ("Benutzer")
Die Person, die eine Korrelation zwischen dem Tabellennamen und der Tatsache herstellt, dass er einen Container darstellt, der mehrere Zeilen enthalten kann.

"Benutzercontainer" kann also mehrere Zeilen enthalten.

Plural ("Benutzer")
Die Person, die die Korrelation zwischen dem Tabellennamen und der Tatsache, dass es sich um einen Container handelt, nicht herstellt. Natürlich wissen sie, dass es sich um einen Container handelt, aber der Name enthält ihn nicht.

z.B.
Ein "Eierkarton" kann mehrere Eier enthalten, aber das ist offensichtlich, da die Behälterreferenz im Namen enthalten ist und das Potenzial für mehrere Eier bietet. Bei dem singulären Tabellennamen "user" ist die Containerreferenz jedoch nicht im Namen enthalten. zB "user_container" wäre wahrscheinlich für Leute akzeptabel, die mehrere Namen bevorzugen.

Ich denke, das liegt auch daran, dass jahrelanger Plural in den meisten Online-Lehrmaterialien üblich ist.


Trotzdem denke ich, dass der Singular technisch gesehen genauer ist, da wir einen einzelnen Container benennen und Container mehrere (oder einzelne) Zeilen enthalten können.
Es scheint für Menschen falsch zu sein, wenn sie den Tabellennamen mental mit dem Inhalt verknüpfen (mehrere Zeilen benötigen einen Pluralnamen), anstatt den benannten Container mental mit dem Inhalt zu verknüpfen (ein Container ermöglicht mehrere).

Wie immer gibt es oft kein Richtig und Falsch, und es geht mehr darum, was zum Szenario passt, und vor allem darum, mit dem übereinzustimmen, was Sie wählen.

Wenn Sie das Projekt ausschließlich durchführen und es keinen wirklichen Grund gibt, das zu tun, was Sie für am besten halten, oder nur die Präferenz. Wenden Sie dasselbe an, wenn Sie in einem Entwicklerteam sind, und treffen Sie einfach eine einstimmige Entscheidung.

0
James

Es ist eine sehr persönliche Sache. Ich benutze seit 30 Jahren Singularform. Aber ich kann sehen, warum Menschen Pluralformen mögen. Die Bücher - Autoren sind interessant, da ich denke, dass Buchautoren nicht falsch sind. Ein Buch kann einen oder mehrere Autoren haben. Und Autoren haben möglicherweise ein oder mehrere Bücher geschrieben (z. B. mitgeschrieben). Es kommt auch nur darauf an, wie Sie mit Büchern umgehen, die von mehr als einem Autor geschrieben wurden. Ich stimme anderen Antworten zu. Wählen Sie eine und seien Sie konsequent. In Bezug auf reservierte Wörter Fragen. Ich denke, es ist nicht schwer, Workaround-Namen zu finden. Benutzer -> App_Benutzer, Sitzung -> App_Session, Bestellung -> Kundenbestellung

0
Ray