true/false 値を保持するフィールドのベスト プラクティスは何ですか?
このような列は、enum('yes','no') または tinyint(1) として定義できます。一方が他方よりも優れている/高速ですか?
enum('1','0') と enum('yes','no') のどちらを使用する方が良いですか (つまり、'yes' または 'no' をすべての行に文字列として書き込みますか?サイズが大きくなります)?
この理由から列挙を避ける
結論として、ENUM にはその役割がありますが、控えめに使用する必要があります。データベースではなく、モデルが制約を適用する必要があります。モデルは、データベースではなく、生データをビューの有用な情報に解釈する必要があります。
BOOLEANtype には理由があります。確かにTINYINT(1)ありますが、そこにあるので、推奨される方法に違いありません。
また、ENUM非標準の MySql 拡張機能です。特に標準的な方法で同じ結果が得られる場合は、これを避ける必要があります。