データ型について


🗽 データ型の選択の基準

  1. 一定数の候補からの選択では、整数型(smallint, integer, bigint)、列挙型(enum)、charの順で選ぶ
  2. 文字列に数値しか存在しない倍は、整数型を使う
  3. 200文字以内であればvarchar型、それ以外はtext型を選択する

😎 数値型について

説明
smallint サイズは2バイト
int サイズは4バイト
bigint サイズは8バイト

🎃 文字列型について

PostgreSQLの文字列型charvarchartextの違いを紹介します。

説明
char(n) サイズは(1 or 4) + nバイト。nは文字数。利用メリットはほとんどない。
varchar(n) サイズは(1 or 4) + nバイト。nは文字数。
text サイズは(1 or 4) + nバイト。1GBまでなら格納可能

textvarcharも効率面では意識的に使い分けるメリットはあまりありません。
varcharにするメリットは外部ツールと連携して見積もりができるなどです。

🍣 文字列のCHECK制約

varcharで文字数制限はできますが、本質的なチェックはCHECK制約を入れましょう。

CREATE TABLE tbl (t text CHECK (t ~ '^[0-9]{5}$'));

🐯 参考リンク

📚 おすすめの書籍