[pgsql-jp: 28187] Re: char varchar textについて

Kazumasa Gotoh kgotoh @ cic-kk.co.jp
2002年 12月 5日 (木) 00:37:17 JST


From: マッスル進藤 <muscle @ dreamburg.net>
Date: Wed, 4 Dec 2002 22:13:24 +0900

> IDやメールアドレス等を保存する際に有効なのはどのかたちですか?
> 今までは、気にせずtextに保存してきましたが、速度や容量のことを考
> えるとやはりcharを使ったほうがよろしいのでしょうか?

PostgreSQL のマニュアルを読むと、「文字を格納する場合は
迷わず text を使え」みたいに書いてあります。

char や varchar は標準 SQL との互換のために持っているだけだと
言わんばかりにも見えます。
まぁ、Oracle のマニュアルでも「varhar2 (Oracle 独自の型)を使え」
と書いてあるので同じようなもんですが。

text を使いたければ text を使っていればいいし、char を使いたければ
使えばいい。その程度のことだと私は考えています。
効率云々よりも、「アプリケーションからはどちらが扱いやすいか」
という点の方が大事でしょう。

例えば char の場合には、宣言した長さ以上のデータは入りようが
ありません(切り捨てられる)。しかし text であれば 8byte のつもりでも
実際には 10byte のデータが入る可能性があります。
それをどう考えるかという事でしかないのでは?

「万能の一般解」を求めたがるという気持ちはわからないでもありませんが、
そんなものは世の中には存在しないと考えた方がいいでしょう。

「ID やメイルアドレス」とか言って制約をかけたつもりでも、「実際に
それをどう扱おうとしているか」という条件によって答えは違ってきます。

つまり、自分でよく考えないと答えは出てこないという事です。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
(株) セントラル情報センター
                             後藤和政    kgotoh @ cic-kk.co.jp



pgsql-jp メーリングリストの案内