Upgrade to Pro — share decks privately, control downloads, hide ads and more …

statusカラムから生じる技術的負債とその解決策

r-sugi
May 27, 2024
250

 statusカラムから生じる技術的負債とその解決策

登壇資料: エンジニア達の「完全に理解した」Talk #53
https://easy2.connpass.com/event/317931/

記事1: テーブル設計: statusカラムから生じる技術的負債とその解決策①
https://zenn.dev/rsugi/articles/8a939d7bd2f60a

記事2: テーブル設計: statusカラムから生じる技術的負債とその解決策②
https://zenn.dev/rsugi/articles/886fabb1a8dc03

記事3: テーブル設計: 記事投稿サイト
https://zenn.dev/rsugi/articles/57114ad5dffc05
※ dbdiagram: https://dbdiagram.io/d/[sample2]記事投稿サービス-6650a130f84ecd1d2211e3aa

r-sugi

May 27, 2024
Tweet

Transcript

  1. statusカラムがあるとな ぜ困るか (1/3) statusカラム → 特定の statusに依存するカラム が増える (nullカラム )

    → カラム多すぎテーブルが生まれ る statusカラム → 更新したら履歴が 消える statusカラムから生じる技術的負債とその解決策 by r-sugi 4
  2. statusカラムがあるとなぜ困るか (2/3) データベースの歪み → アプリケーションの歪み statusカラム → スパゲティ statusカラム x

    activerecordパターン → 特盛スパゲティ →アプリケーション側に、ステータスを考慮した (Null)カラム操作、処理が増え続ける →テーブルは簡単に修正できない statusカラムから生じる技術的負債とその解決策 by r-sugi 5
  3. 改善過程 (5/8) status変更に関する値を保存する status変更理由、変更操作者などの情報 はカラム追加 (or 子テーブル追加 ) 例 :

    退会フォームの入力値、管理者 による強制退会の退会理由 例 : アカウント作成過程で使うワン タイムな値 statusカラムから生じる技術的負債とその解決策 by r-sugi 12