はじめに 業務システムのDBを読んでいると、一つのテーブルに複数のステータスカラムが同居しているケースをよく見かけます。 CREATE TABLE orders ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, user_id INT UNSIGNED NOT NULL, order_status TINYINT NOT NULL, -- 1:受付 2:審査中 3:処理中 4:完了 5:停止 payment_status TINYINT NOT NULL DEFAULT 1, -- 1:未請求 2:請求済 3:収納済 4:失敗 external_status TINYINT, -- 外部システムのステータス(1〜4, 9) external_code VARCHAR(2), -- 外部機関ごとにコードが異なる processed_at VARCHAR(8

