ここから本文です

メモや備考用のテーブル定義(文字数)について(再質問) 参考になる回答を頂...

yj2********さん

2009/1/601:26:13

メモや備考用のテーブル定義(文字数)について(再質問)

参考になる回答を頂くことができましたが、他の方のご意見も頂きたく再質問させていただきます。
.

<質問1>
RDBMSがPostgreSQLの場合、Web画面で200文字のメモ欄を作るとき、これに対応したフィールド定義はどのようにされますか?
以下の中でしたら、どれが一番最適でしょうか。
RDBMSの特性に基づくご意見をお聞きしたいです。

①varchar(200)
②varchar(255)
③varchar(256)
④その他

<質問2>
300文字のメモ欄を作成する場合はいかがでしょうか。

①varchar(300)
②varchar(511)?
③varchar(512)
④その他

閲覧数:
991
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

みかげさん

2009/1/1017:49:26

文字数の制限をDB側でもチェックしたいでしょうか?
DBでもチェックしたいのであれば,質問1,2とも①ということになります.

DB側でのチェックが不要であれば,どれでもかわりませんし,
制限無しの text 型でも同じです.

なお,200と指定したら,200文字なので,半角英数字も
全角文字も1文字は1文字としてカウントされるようです.
もし,Shift_JISコードで200バイト(全角は2とカウント)したい,
というような希望があるのであれば,DB側では text 型などにしておき,
アプリケーション側でチェックをする必要があるかと思います.


PostgreSQL のマニュアルを読む限り,どの指定をしても,
DB側の制限チェックがあるか無いかの違いしかないようです.
実際に格納する文字によって,DBの物理的な記録方法が
変わるとの記述があるので,フィールド定義ではなく,
実際の格納データサイズに基づいてパフォーマンスの特性が変わるようです.

http://www.postgresql.jp/document/pg835doc/html/datatype-character....

126バイト以下,それ以上ある程度のサイズまで,ある程度のサイズ以上,
の3タイプがあるようです.

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

yam********さん

2009/1/801:57:24

PostgreSQLは、varchar型とtext型で実行速度の差が出ません。
将来の仕様変更を考慮すると、textにしておくのが無難です。

ってのが定説だったけど、ほんとかなぁ?

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる