Ich stimme der Einstellung in "keine magischen Werte verwenden" zu. Ich möchte jedoch darauf hinweisen, dass es manchmal legitim ist, auf solche Lösungen zurückzugreifen.
Es gibt einen Preis für das Setzen von Spalten, die nullable sind: NULLs sind nicht indexierbar.Eine Abfrage wie "Alle Datensätze, die seit Anfang 2010 nicht geändert wurden" enthält diejenigen, die noch nie geändert wurden. Wenn wir eine NULL-Spalte verwenden, sind wir gezwungen, [modified] < @cutoffDate OR [modifiziert] IS NULL zu verwenden, und dies wiederum zwingt das Datenbankmodul, einen Tabellenscan durchzuführen, da die Nullen nicht indiziert sind. Und dieses letzte kann ein Problem sein.
In der Praxis sollte man mit NULL gehen, wenn dies keine praktische, reale Leistungseinbuße einführt. Aber es kann schwierig sein, es zu wissen, es sei denn, Sie haben eine Vorstellung davon, welche realistischen Datenmengen heute vorliegen und in der sogenannten vorhersehbaren Zukunft liegen werden. Sie müssen auch wissen, ob es einen großen Teil der Datensätze gibt, die den speziellen Wert haben - wenn ja, dann hat es keinen Sinn, sie trotzdem zu indizieren.
Kurz gesagt, durch Taubheit/Faustregel sollte man für NULL gehen. Wenn es jedoch eine große Anzahl von Datensätzen gibt, werden die Daten häufig abgefragt, und nur ein kleiner Teil der Datensätze hat den NULL/Spezialwert. Es könnte einen erheblichen Leistungsgewinn für das Auffinden von Datensätzen auf der Grundlage dieser Informationen geben Index!) und IMHO kann dies manchmal die Verwendung von "magischen" Werten rechtfertigen.
würde ich eher zustimmen. Haben Sie nebenbei eine Antwort auf die Frage? – user72491
Ich hasse es, wenn Benutzer versuchen, den Benutzer umzuleiten, anstatt zu antworten und dann versuchen, umzuleiten. – TheTXI
"Vielleicht sollte ich es einfach null lassen." - Ich habe diesen Teil beantwortet –