Ich hatte die gleiche Frage, und nachdem ich alle Antworten hier gelesen habe, bleibe ich definitiv bei SINGULAR, Gründe:
Grund 1 (Konzept). Sie können sich eine Tasche mit Äpfeln als "AppleBag" vorstellen, es spielt keine Rolle, ob sie 0, 1 oder eine Million Äpfel enthält, es ist immer die gleiche Tasche. Tabellen sind genau das, Container, der Tabellenname muss beschreiben, was er enthält, nicht wie viele Daten er enthält. Außerdem handelt es sich bei dem Plural-Konzept eher um ein Konzept der gesprochenen Sprache (um festzustellen, ob es einen oder mehrere gibt).
Grund 2 . (Bequemlichkeit). Es ist einfacher, mit Singularnamen auszukommen, als mit Pluralnamen. Objekte können einen unregelmäßigen Plural oder gar keinen Plural haben, haben aber immer einen Singular (mit wenigen Ausnahmen wie Nachrichten).
- Kunde
- Bestellung
- Benutzer
- Status
- Nachrichten
Grund 3 . (Ästhetik und Ordnung). Vor allem in Master-Detail-Szenarien liest sich dies besser, ist besser nach Namen geordnet und hat eine logischere Reihenfolge (Master zuerst, Detail als zweites):
- 1.Bestellung
- 2.orderDetail
Verglichen mit:
- 1.orderDetails
- 2.Aufträge
Grund 4 (Einfachheit). Alles zusammengenommen, Tabellennamen, Primärschlüssel, Beziehungen, Entitätsklassen... ist es besser, nur einen Namen (Singular) zu kennen als zwei (Singular Klasse, Plural Tabelle, Singular Feld, Singular-Plural Master-Detail...)
Customer
Customer.CustomerID
CustomerAddress
public Class Customer {...}
SELECT FROM Customer WHERE CustomerID = 100
Wenn Sie einmal wissen, dass Sie es mit "Kunde" zu tun haben, können Sie sicher sein, dass Sie dasselbe Wort für alle Ihre Datenbankinteraktionen verwenden werden.
Grund 5 . (Globalisierung). Die Welt wird kleiner, Sie haben vielleicht ein Team mit verschiedenen Nationalitäten, nicht jeder hat Englisch als Muttersprache. Für einen Programmierer, dessen Muttersprache nicht Englisch ist, wäre es einfacher, an "Repository" statt an "Repositories" zu denken, oder an "Status" statt an "Statuses". Singuläre Namen können zu weniger Fehlern durch Tippfehler führen, Zeit sparen, weil man nicht überlegen muss, ob es "Child" oder "Children" heißt, und somit die Produktivität steigern.
Grund 6 . (Warum nicht?). Sie können damit sogar Schreibzeit und Speicherplatz sparen und die Lebensdauer Ihrer Computertastatur verlängern!
SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 103
Sie haben 3 Buchstaben, 3 Bytes und 3 zusätzliche Tastaturanschläge eingespart :)
Und schließlich können Sie denjenigen, die mit reservierten Namen durcheinander kommen, Namen wie:
- Benutzer > LoginBenutzer, AppBenutzer, SystemBenutzer, CMSBenutzer,...
Oder verwenden Sie die berüchtigten eckigen Klammern [User]