Hi,
warum sollte man eher not null als null benutzen.
Die Mysql-Doku sagt dazu:
"Deklarieren Sie Spalten - falls möglich - als NOT NULL. Das macht alles schneller und Sie sparen ein Bit pro Spalte. Beachten Sie, dass, wenn Sie wirklich NULL in Ihrer Applikation benötigen, Sie dieses natürlich benutzen sollten. Vermeiden Sie nur, einfach alle Spalten vorgabemäßig auf NULL zu haben."Mit anderen Worten: Wenn deine Applikation es benötigt, dass die Datenbank zwischen "ist nichts gespeichert (= NULL)" und "Leerstring bzw. Nullwert gespeichert" unterscheiden muß, dann benutze "NULL". Dann mußt du das bei irgendeiner Abfrage aber auch tatsächlich wissen wollen.
nicht unbedingt, sage ich da als Datenbankdesigner. Die Abfrage, "bei der man es wissen wollte" muss ja noch nicht geschrieben bzw. geplant worden sein.
Ich moechte allerdings mal darauf hinweisen, dass NULL und '' etwas grundsaetzlich anderes abbilden. Einerseits NULL die nichterfasste Information und '' der String der Laenge 0, also beispielsweise ein nicht vorhandener akademischer Titel, was ja wiederum Information transportiert.
Das oft gehoerte Geschwaetz, dass Datenfelder praeferiert als nicht nullable deklariert werden sollten, klingt fuer mich etwas hohl. Argumentiert wird da oft mit der vermeidbaren Komplexitaet, die Datenbankabfragedesignern die Arbeit erleichtern soll. - Aber ich zweifle an der Werthaltigkeit dieses Arguments in diesem Fall ernsthaft. (Womit ich mich allerdings keinesfalls pauschal gegen das Vermeiden von Komplexitaet ausgesprochen habe.)
GRuss,
Lude