Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Soll ich NULL oder eine leere Zeichenfolge verwenden, um keine Daten in der Tabellenspalte darzustellen?

Ich widerspreche stark jedem, der sagt, NULL bedingungslos zu verwenden. Wenn Sie zulassen, dass eine Spalte NULL ist, wird ein zusätzlicher Status eingeführt, den Sie nicht hätten, wenn Sie die Spalte als NOT NULL einrichten würden. Tun Sie dies nicht, wenn Sie den zusätzlichen Status nicht benötigen. Das heißt, wenn Sie keinen Unterschied zwischen der Bedeutung einer leeren Zeichenfolge und der Bedeutung von null feststellen können, richten Sie die Spalte als NOT NULL ein und verwenden Sie eine leere Zeichenfolge, um leer darzustellen. Es ist keine gute Idee, dasselbe auf zwei verschiedene Arten darzustellen.

Die meisten Leute, die Ihnen gesagt haben, dass Sie NULL verwenden sollen, haben auch ein Beispiel gegeben, in dem NULL etwas anderes als eine leere Zeichenfolge bedeuten würde. Und in diesen Beispielen haben sie Recht.

Meistens ist NULL jedoch ein unnötiger zusätzlicher Zustand, der Programmierer nur dazu zwingt, mehr Fälle zu behandeln. Wie andere bereits erwähnt haben, lässt Oracle diesen zusätzlichen Status nicht zu, da es NULL und eine leere Zeichenfolge als dasselbe behandelt (es ist unmöglich, eine leere Zeichenfolge in einer Spalte zu speichern, die in Oracle keine Null zulässt).