Sollte ich ein SQL Server-Schlüsselwort als Spaltennamen verwenden?

8

Ich entwerfe eine Datenbank und habe kürzlich eine Spalte in einer Tabelle DayOfWeek benannt. Dabei habe ich vergessen, dass DayOfWeek eine integrierte Funktion in SQL Server ist. Jetzt entscheide ich, ob ich es so belassen soll wie es ist und referenziere die Spalte mit eckigen Klammern [DayOfWeek] oder ändere den Spaltennamen, um Konflikte in der Zukunft zu vermeiden. Ich bin nicht zu weit in das Projekt hinein, also ist es nicht schwer, es zu verändern. Die Debatte in meinem Kopf ist, dass der Spaltenname von DayOfWeek nur so viel Sinn für seinen Zweck macht, also möchte ich ihn wirklich benutzen ... aber es ist ein reserviertes Wort ... und könnte in der Zukunft (vor allem wenn Ich muss immer eckige Klammern setzen, wenn ich auf die Spalte referenziere).

Was denkt jeder?

    
Jeff Widmer 19.06.2009, 10:50
quelle

7 Antworten

12

Ich würde es ändern - ich habe eine Legacy-Tabelle namens Benutzer - es ist ein Schmerz mit den eckigen Klammern die ganze Zeit. vielleicht nennen Sie es DayOfWeekName oder DayOFWeekId

Josh

    
Josh 19.06.2009, 10:52
quelle
4

Jeff,

Wenn Sie nicht zu weit entfernt sind, um die Spalte (relativ) schmerzlos umzubenennen, dann würde ich Ihnen empfehlen, sie zu ändern. Sie haben ein wahrscheinliches zukünftiges Kopfweh für die Wartungscrew identifiziert, und ich schätze, es wäre tatsächlich weniger kostspielig (mit der Zeit), es jetzt zu säubern, vor allem wenn man bedenkt, dass das Umbenennen von etwas nicht die Hölle ist Einführung einer wirklich effektiven Such- und Ersetzungsfunktion in Texteditoren und IDEs.

Der wirklich harte Teil der Umbenennung besteht darin, das nötige Verständnis zu erlangen, um die Arbeit sicher zu erledigen. Sie sind einzigartig (der Autor zu sein), dieses Verständnis zu haben. Wenn Sie mich (nur zum Beispiel) bitten würden, die Arbeit zu machen, dann wäre das wahrscheinlich keine kosteneffektive Geschäftsidee.

Also ... +1 um den Sauger selbst zu reparieren ... und +2 um es nicht wieder zu tun; -)

Prost. Keith.

    
corlettk 19.06.2009 10:59
quelle
1

Ich stelle immer sicher, dass ich niemals ein Schlüsselwort als Anfang einer Variablen / eines Objekts / einer Funktion benutze, nur weil Sie nie sicher sind, ob es Ihrer Zielsprache gefällt. Es kann oft verrückte Fehler erzeugen, die eine Weile brauchen, um aufzuspüren. Selbst wenn die Syntaxüberprüfung es aufgreift, bedeutet das, dass Sie mehr Zeit verschwendet haben, als wenn es sich um einen anderen Namen wie FurryKitten gehandelt hätte.

Ich würde DayOfWeek vermeiden und mich für etwas entscheiden, das völlig anders ist, vielleicht Weekday oder DayName . Es spart nur Ärger.

Plus - eckige Klammern verursachen nur Kopfschmerzen, und es gibt eine Menge von SQL-Entwicklern, die die Klammern nicht verwenden - neue Entwickler werden nach einiger Zeit aus Gewohnheit für einige Zeit "nicht-geklammerten" Code erstellen Das Team. Unübliche Konventionen sollten nach Möglichkeit vermieden werden.

    
Joel Goodwin 19.06.2009 12:38
quelle
0

ändern Sie es, wenn es einfach ist. Aber als gute Praxis würde ich überall eckige Klammern verwenden. Sobald man sich daran gewöhnt hat, ist es kein Schmerz mehr, als zwischen die Wörter zu setzen.

    
Remus Rusanu 19.06.2009 10:54
quelle
0

Wir haben hier eine Tabelle namens User. Wenn möglich, würde ich es ändern. Obwohl Josh korrekt ist, können Sie eckige Klammern setzen, um anzuzeigen, dass es sich um eine Tabelle handelt. Diese Aufgabe wird sehr schnell alt. Die Verwendung reservierter Wörter als Tabellen macht es anderen Entwicklern ebenfalls schwer. Wenn jemand nicht weiß, dass es sich um ein reserviertes Wort handelt, kann es schwierig sein festzustellen, warum eine Abfrage nicht funktioniert.

    
kemiller2002 19.06.2009 10:54
quelle
0

Wenn Sie DB-Adapter / Abstraktions-Bibliotheken verwenden, um Daten aus der Datenbank zu erhalten, dann machen Sie sich keine Sorgen. Die Klasse wird Spaltennamen für Sie entgehen. Wenn Sie SQL-Abfragen selbst schreiben, kann das zu Problemen führen. Sie müssen den Spaltennamen in Ihren Abfragen entkommen.

P.S. Ich erinnere mich daran, dass ich einige Male in einer Situation wie du war. Aber ich wurde Spalte als "Reihenfolge" benannt: -)

    
Pawka 19.06.2009 10:55
quelle
0

Ich würde auch vermeiden, reservierte Wörter zu verwenden, Sie können sehr leicht in Schwierigkeiten geraten, wenn Sie nicht aufpassen.

    
Fiur 19.06.2009 10:55
quelle