- ベストアンサー
データ型の存在理由と決定方法は?
テーブルを作成するとき、各列にデータ型を指定しなければなりませんが、そもそもなんでデータ型という物が存在するのでしょうか? いっそのことすべてtext型で扱ってしまった方が、いちいち挿入されるデータを予測してデータ型を決定する必要もないと思うのですが… (integerよりsmallintにした方が動作が速くなるとか、そういう理由なんでしょうか?) また、データ型を決定しなければいけない場合、何を基準にデータ型を決定すればいいのでしょうか。 例えば、掲示板などをデータベースで管理する場合は、ハンドルネームがどれくらいまで長い人がいるのかわからないので、結局text型になってしまいそうですが…
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>(integerよりsmallintにした方が動作が速くなるとか、そういう理由なんでしょうか?) 基本的にはプログラム言語にintとstring(text)があるのと同じ理由です。 たとえば、たいていの場合intの方がメモリ消費量が少なく、検索やソートも容易です。 あと、stringは基本的に算術対象にできません。 (StrToIntとか使えばできる場合もありますが) >何を基準にデータ型を決定 色々考慮する事項はありますが、基本的にその項目に入りうる最大限動的なデータ型を決定すれば良いかと思います。 特にPostgresだけを使うならvarcharやcharは積極的に使う理由がない限り使う必要はないでしょう。 (問題になるのは移植性くらいかな?) #私は大抵textとintくらいしか使わないです。 #(booleanはintで代用)
その他の回答 (1)
- php504
- ベストアンサー率42% (926/2160)
型があったほうが処理が早いしサイズも小さいほど処理が早いと思います。 ハンドルネームの例では長さ未定で挿入するのではなく例えば100バイト以上のハンドルネームは登録不可として長さを限定するほうが普通ではないでしょうか。 型のないSQLiteというデータベースもあります。