データ型について


🎳 データ型の選択の基準

  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}$'));

😀 参考リンク

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)