Moin!
Außerdem wäre die Frage, ob das NULL in dem Feld wirklich benötigt wird, oder ob ein Lerstring als Default-Wert nicht auch reicht und dann keine Extrabehandlung der NULL-Werte nötig macht.
War auch meine erste Idee, die DB zu ändern. Aber die Zulassung von NULL bedeutet doch so viel: "Inhalt nicht erforderlich".
Das sehe ich nicht so.
Wenn ein Feld NULL sein darf, dann bedeutet dass, dass man die Tatsache "Ich habe hier keinen Wert" speichern will.
Sowas ist dann sinnvoll, wenn die Ermittlung des Wertes aufgrund externer Probleme oder Situationen fehlschlägt oder eben "weiß ich nicht" ergibt. Klassiker: Externes Thermometer - da könnte mal die Batterie leer sein, oder die Meßwertübertragung gestört. In so einem Fall wäre NULL anstelle einer Temperatur sinnvoll.
Bei Kommentarfeldern hingegen ist NULL nicht sehr sinnvoll. Wenn man "keinen Kommentar" abgeben will, wird das Resultat ganz einfach ein Leerstring sein. Und der ist im Kontext auch immer sinnvoll behandelbar. Die Sonderbehandlung von NULL ist hierbei in der Regel nicht erforderlich.
Die Tatsache "Inhalt nicht erforderlich" hingegen festzustellen und zu behandeln obliegt der Formularauswertung.
Du kannst NULL im Sinne der Formularauswertung eigentlich nur dann sinnvoll speichern, wenn du zusätzlich zum Kommentarfeld noch eine Checkbox "will ich nicht ausfüllen" anbietest. Ansonsten kannst du ja nicht unterscheiden, ob der Leerstring nun "will nicht" bedeutet, oder "soll exakt 'ohne Worte' sein".
Und deshalb will ich Programmierprobleme nicht dadurch beheben, indem ich den Sinn von MySQL- Eigenschaften "anpasse".
MySQL-Eigenschaften haben keinen Sinn, den man berücksichtigen muss, sondern man nutzt sie, indem man ihren Sinn definiert.
- Sven Rautenberg