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,
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.
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.
ä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.
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.
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: -)
Tags und Links sql-server naming-conventions naming