18

true/false 値を保持するフィールドのベスト プラクティスは何ですか?

このような列は、enum('yes','no') または tinyint(1) として定義できます。一方が他方よりも優れている/高速ですか?

enum('1','0') と enum('yes','no') のどちらを使用する方が良いですか (つまり、'yes' または 'no' をすべての行に文字列として書き込みますか?サイズが大きくなります)?

4

3 に答える 3

15

この理由から列挙を避ける

結論として、ENUM にはその役割がありますが、控えめに使用する必要があります。データベースではなく、モデルが制約を適用する必要があります。モデルは、データベースではなく、生データをビューの有用な情報に解釈する必要があります。

于 2010-11-28T14:39:04.923 に答える
12

BOOLEANtype には理由があります。確かにTINYINT(1)ありますが、そこにあるので、推奨される方法に違いありません。

于 2010-11-28T14:27:33.887 に答える
11

また、ENUM非標準の MySql 拡張機能です。特に標準的な方法で同じ結果が得られる場合は、これを避ける必要があります。

于 2010-11-28T14:28:46.143 に答える