🏈 データ型の選択の基準
- 一定数の候補からの選択では、整数型(
smallint, integer, bigint
)、列挙型(enum
)、char
の順で選ぶ - 文字列に数値しか存在しない倍は、整数型を使う
- 200文字以内であればvarchar型、それ以外はtext型を選択する
🐯 数値型について
型 | 説明 |
---|---|
smallint |
サイズは2バイト |
int |
サイズは4バイト |
bigint |
サイズは8バイト |
🐞 文字列型について
PostgreSQLの文字列型char
、varchar
、text
の違いを紹介します。
型 | 説明 |
---|---|
char(n) |
サイズは(1 or 4) + n バイト。nは文字数。利用メリットはほとんどない。 |
varchar(n) |
サイズは(1 or 4) + n バイト。nは文字数。 |
text |
サイズは(1 or 4) + n バイト。1GBまでなら格納可能 |
text
とvarchar
も効率面では意識的に使い分けるメリットはあまりありません。varchar
にするメリットは外部ツールと連携して見積もりができるなどです。
🐝 文字列のCHECK制約
varchar
で文字数制限はできますが、本質的なチェックはCHECK制約を入れましょう。
CREATE TABLE tbl (t text CHECK (t ~ '^[0-9]{5}$')); |