重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

テーブルを作成するとき、各列にデータ型を指定しなければなりませんが、そもそもなんでデータ型という物が存在するのでしょうか?
いっそのことすべてtext型で扱ってしまった方が、いちいち挿入されるデータを予測してデータ型を決定する必要もないと思うのですが…
(integerよりsmallintにした方が動作が速くなるとか、そういう理由なんでしょうか?)

また、データ型を決定しなければいけない場合、何を基準にデータ型を決定すればいいのでしょうか。
例えば、掲示板などをデータベースで管理する場合は、ハンドルネームがどれくらいまで長い人がいるのかわからないので、結局text型になってしまいそうですが…

A 回答 (2件)

>(integerよりsmallintにした方が動作が速くなるとか、そういう理由なんでしょうか?)



基本的にはプログラム言語にintとstring(text)があるのと同じ理由です。
たとえば、たいていの場合intの方がメモリ消費量が少なく、検索やソートも容易です。
あと、stringは基本的に算術対象にできません。
(StrToIntとか使えばできる場合もありますが)

>何を基準にデータ型を決定

色々考慮する事項はありますが、基本的にその項目に入りうる最大限動的なデータ型を決定すれば良いかと思います。
特にPostgresだけを使うならvarcharやcharは積極的に使う理由がない限り使う必要はないでしょう。
(問題になるのは移植性くらいかな?)

#私は大抵textとintくらいしか使わないです。
#(booleanはintで代用)
    • good
    • 0

型があったほうが処理が早いしサイズも小さいほど処理が早いと思います。


ハンドルネームの例では長さ未定で挿入するのではなく例えば100バイト以上のハンドルネームは登録不可として長さを限定するほうが普通ではないでしょうか。

型のないSQLiteというデータベースもあります。
    • good
    • 0

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

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