データベース・テーブルのフィールドにdefaultをNullに設定するか、「」に設定するか、Empty Stringに設定します.

1040 ワード

最近プロジェクトにデータベースを設計し始めましたが、多くの人が直面する可能性のある問題に遭遇しました.あるフィールドのデフォルト値を設定するとき、null、「」、それともempty stringを設定しますか.
まず、データ型からこの問題を分析します.
私はphperですが、php言語から見ると、空かどうかを判断するには、empty()という関数を使うとnullとempty stringに「」があり、結果は同じですが、java、C#などより高度な点の言語から判断するとnullとempty stringには違いがあります.nullはこれらの高度な言語では何でも空ですが、empty stringは空ですが、文字列stringタイプです.
そしてmysql自体から見ると
1:  ('')       
2: MySQL  NULL        。      :
“NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.” 

だからmysqlはテーブルを設計する時default NULLを使わないことを提案します
stringタイプのdefault'またはemptystring
intタイプのdefault 0
もう一つ、異なるプロジェクト開発からこの問題を分析します.
以前は単純にウェブページ側をしていましたが、このデフォルト値設定の問題にはnullかempty stringかを選びました.しかしその後、別のチームがappを開発したとき、このnullとempty stringの問題は特に際立っていました.私はphpでインタフェースを開発していたので、nullのデータ型が現れたら、処理せずにそのままフロントエンドに戻ると、iosでもAndroidでも、この空の判断を処理しなければnullを直接出力するか、プログラムが直接間違っているか.すべての推奨データベースを設計する際のデフォルト値はnullをできるだけ少なくします.