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?

6voto

Bruce Patin Punkte 305

Die SQL-Definition einer Tabelle ist in Wirklichkeit die Definition einer potenziellen Zeile der Tabelle, nicht die der Sammlung. Daher muss der in dieser Definition verwendete Name den Typ der Zeile bezeichnen, nicht den Namen der Sammlung. Diejenigen, die den Plural bevorzugen, weil er sich in ihren englischen Erklärungen gut liest, müssen anfangen, logischer zu denken und sich die gesamte Logik und den Programmiercode ansehen, der mit der tatsächlichen Verwendung einer Tabelle verbunden ist. Es gibt mehrere sehr gute Gründe, die in diesen Kommentaren genannt werden, um singuläre Tabellennamen zu verwenden. Dazu gehören auch sehr gute Gründe, KEINE pluralischen Tabellennamen zu verwenden. "Gut lesen" sollte überhaupt kein Grund sein, vor allem, weil einige die Idee anders lesen könnten.

4voto

hmartinezd Punkte 1178

Es gibt auf beiden Seiten unterschiedliche Papiere, ich denke, man muss sich nur für eine Seite entscheiden. Ich persönlich bevorzuge Plurar für die Benennung von Tabellen, und natürlich Singular für die Benennung von Spalten.

Ich finde es gut, dass man das lesen kann:

SELECT CustomerName FROM Customers WHERE CustomerID = 100;

Wir haben zwar OOP, und das ist großartig, aber die meisten Leute verwenden weiterhin relationale Datenbanken und keine Objektdatenbanken. Es besteht keine Notwendigkeit, die OOP-Konzepte für relationale Datenbanken zu befolgen.

Ein weiteres Beispiel: Sie haben eine Tabelle Teams, die TeamID, TeamColor, aber auch PlayerID enthält und für eine bestimmte Anzahl von PlayerID dieselbe TeamID und TeamColor hat...

Zu welcher Mannschaft gehört der Spieler?

SELECT * FROM Teams WHERE PlayerID = X

Alle Spieler von X Team?

SELECT * FROM Players INNER JOIN Teams ON Players.PlayerID = Teams.PlayerID WHERE Teams.TeamID = X

Klingt das alles gut für Sie?

Schauen Sie sich auch die von W3Schools verwendeten Namenskonventionen an:

http://www.w3schools.com/sql/sql_join_inner.asp

4voto

nicruo Punkte 508

Ich werde nur meine Meinung sagen, warum ich die Einzigartig Namen.

Ich muss zum Beispiel alle Felder eines Benutzers abrufen:

-- Select every fields from 'user' table
SELECT * FROM user

Ich brauche den Namen des Benutzers, der 21 Jahre alt ist:

-- Select every fields from 'user' table which have 21 years old
SELECT * FROM user WHERE age = '21'

Natürlich kann der Plural mit denselben Mitteln verwendet werden, aber für mein Gehirn ist das wirklich der richtige Weg.

4voto

Patrick Harrington Punkte 45400

Wenn Sie gehen, wird es Ärger geben, aber wenn Sie bleiben, wird es doppelt so viel sein.

Ich würde lieber gegen eine vermeintlich nicht pluralistische Namenskonvention verstoßen, als meine Tabelle nach etwas zu benennen, das ein reserviertes Wort sein könnte.

4voto

BenAlabaster Punkte 37617

Die Leitlinien sind wirklich nur dazu da. Sie sind nicht "in Stein gemeißelt", weshalb Sie die Möglichkeit haben, sie zu ignorieren.

Ich würde sagen, dass es logisch intuitiver ist, die Tabellennamen im Plural zu verwenden. Eine Tabelle ist ja schließlich eine Sammlung von Entitäten. Zusätzlich zu den anderen erwähnten Alternativen sehe ich häufig Präfixe in Tabellennamen...

  • tblBenutzer
  • tblDieses
  • tblDas
  • tblDasAndere

Ich behaupte nicht, dass dies der richtige Weg ist, aber ich sehe auch viele Leerzeichen in Tabellennamen, die ich verabscheue. Ich bin sogar schon auf Feldnamen mit idiotischen Zeichen wie ? gestoßen, als ob dieses Feld eine Frage beantworten soll.

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