🏈 データ型の選択の基準
- 一定数の候補からの選択では、整数型(
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}$')); |
