2011-08-04 13 views
3

"空白"の値を''(空の文字列)として、場合によってはNULLとして保存するPHP/MySQLアプリケーションがあります。空の文字列とMySQLデータベースのNULLを保存していますか?

このような混在形式を使用すると、比較するときに問題が発生する可能性があります。そのため、どちらが優れたストレージメカニズムであるか不思議です。 ''またはNULL?これは紛らわしいですが、実際にはいくつかの理由でnullを格納する必要があります

+0

AFAIK、NULLとの比較は、空の文字列との比較よりも高速です。 – Eimantas

+0

http://stackoverflow.com/questions/6638291/standard-use-of-z-instead-of-null-to-represent-missing-data –

+0

その参照のための@Damirありがとうございました!非常に恐ろしい! – siliconpi

答えて

5

  1. ヌルに対するチェックは
  2. ヌルは一般に「i「はドンを意味し、通常はほとんどのデータベースでは、空の文字列をチェックするよりも高速です「知っている」、空の文字列は「わかっている:それは空だ」という意味です。それはより良いセマンティクスを提供します。
+0

データベースに書き込むときに、フィールドの内容がない場合、NULLとして保存してはいけませんか? – siliconpi

+0

はい、不明な値または判読不能な値を示す場合、内容はNULLではありません。たとえば、DBに「フル」名を入力した場合、私のミドルネームに使用できる唯一の値はおそらくNULLです。私は、ミドルネームの文字列が ''か ''ローレンスかどうかを知っています。空の文字列を0と同じように考えると、その値が何もなく、「分からない」または「わからない」NULLとなる定義済みの値 – Karl

+0

はい、しかし、たとえばHTMLフォームからデータを取り出す場合ユーザーが入力していない場合、通常は空の文字列が送信されます。これをチェックせずに、HTMLフォームのパラメータを直接使用して更新を作成すると、nullの代わりに空の文字列が挿入されてしまいます。 –

関連する問題