dポイントプレゼントキャンペーン実施中!

TRUE or FALSE のデータの場合(例えばフラグ類)、皆さんどのようなデータ型にしていますか?
ENUM型とBOOLEAN型(TINYINT(1))の違いはどのような所で出るのでしょうか?

A 回答 (2件)

>どのデータ型が一般的なのかな



数値のデータ型を使用し、0と1を格納しているケースもあれば、文字型で'Y'や'N'を格納しているケースもあります。また、bool型を使用し、trueとfalseで区別しているケースもあります。

どれが「一般的か?」と言われれば、ケース・バイ・ケースであったりするので、答えがないように思います。

MySQLに関しては、#1で回答したようにboolは不完全な状態での実装です。必ず1バイト確保されるので、データベース容量の削減というメリットはありません。

MySQLのシステムの表の定義を見てみると、tinyint(1)やboolでなく、enumを多用していることが分かります。

<表定義を知る例>
show create table mysql.user;

これを見ると、「MySQLに限っては、enumかな?」と感じます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
すっきりいたしました。
とりあえず、true、falseはENUM型を使ってみたいと思います。

お礼日時:2007/09/14 00:54

マニュアルを読みましたか?


MySQLのBOOLEANは、完全な形では実装されていません。

>TRUE or FALSE のデータの場合(例えばフラグ類)、皆さんどのようなデータ型にしていますか?

こういう書込みは、「質問でない」として扱われ、規約違反になる可能性があります。

ENUMは、定義時に指定した値だけしか格納できません。
BOOLEAN(TINYINT(1))は、0と1だけでなく、127などTINYINTで格納可能な数値も実際に格納できてしまいます。trueとfalseを使えば、そういった間違いは防止できますけどね。
    • good
    • 0
この回答へのお礼

>こういう書込みは、「質問でない」として扱われ、規約違反になる可能性があります。

失礼いたしました。今後気をつけます。
知りたかったのは、TRUE or FALSE の時、どのデータ型が一般的なのかなと思ったのです。

お礼日時:2007/09/10 14:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す