PostgreSQLのenum型とcheck制約の違い
Q&A
Closed
解決したいこと
自分の給料データベースを作成しようとしています。
データベースはPostgreSQLです。
給料日テーブルを作成するSQLをchatGPTでレビューを貰いました。
その際、payment_typeはenum型にすることでデータの整合性をより確保できると指摘されました。
check制約でも「給与」と「賞与」以外は挿入できないと思うのですが、わざわざenum型にする理由はなぜでしょうか。
今後、payment_typeに項目を追加することはありません。
また、登録したデータはpgAdmin4でしか見るとこはありません。(アプリなどを作りません)
よろしくお願いいたします。
給料日テーブル
--給料日
CREATE TABLE payday(
id SERIAL PRIMARY KEY,
payment_date DATE UNIQUE NOT NULL,--給与支給日
payment_type VARCHAR(2) NOT NULL CHECK payment_type IN ('給与','賞与')--タイプ(給与または賞与)
);