cat posts/%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e8%a8%ad%e8%a8%88%e3%81%a7%e5%be%8c%e6%82%94%e3%81%97%e3%81%9f%e8%a9%b1.md

【悲報】ワイの users テーブル、カラム30超える

1 風吹けば名無し 2026/06/23(火) 21:04:00 ID:Tb1eD7sg
「あとで変えられるから」と思って雑に作ったテーブル、本番稼働後に変えようとして死んどるわ

2 風吹けば名無し 2026/06/23(火) 21:05:23 ID:Nj7rH2kp
何があったんや

3 風吹けば名無し 2026/06/23(火) 21:06:08 ID:Tb1eD7sg
>>2 ユーザーの属性情報を全部 users に突っ込んでた
最初は name と email だけやったのに、機能追加のたびにカラム増えて気づいたら30超えや

4 風吹けば名無し 2026/06/23(火) 21:07:16 ID:Nj7rH2kp
>>3 やりすぎやろ

5 風吹けば名無し 2026/06/23(火) 21:08:47 ID:Tb1eD7sg
こんな感じや

-- こうなってしまった
users
  id, name, email,
  address, phone, birthday,
  plan_type, plan_started_at, plan_expires_at,
  last_login_at, login_count,
  referral_code, referred_by,
  ... (続く)

6 風吹けば名無し 2026/06/23(火) 21:09:40 ID:Cy4sV8nm
>>5 「… (続く)」で草 まだあるんかい

7 風吹けば名無し 2026/06/23(火) 21:10:56 ID:Tb1eD7sg
>>6 ある

8 風吹けば名無し 2026/06/23(火) 21:11:34 ID:Cy4sV8nm
それ JOIN 地獄やろ

9 風吹けば名無し 2026/06/23(火) 21:12:35 ID:Tb1eD7sg
>>8 テーブルの責務が混在して、JOIN なしでは何もできんのに JOIN しても直感的に取れん状態や
一番あかんやつ

10 風吹けば名無し 2026/06/23(火) 21:13:59 ID:Qd9zM5jw
で、どう直したんや

11 風吹けば名無し 2026/06/23(火) 21:14:45 ID:Tb1eD7sg
>>10 テーブルは「名詞」で切る、が結論やった
users、user_profiles、subscriptions、login_histories みたいに責務分けると後からカラム足しても影響範囲が小さい

12 風吹けば名無し 2026/06/23(火) 21:15:54 ID:Qd9zM5jw
>>11 最初からそうしとけばよかったやん

13 風吹けば名無し 2026/06/23(火) 21:17:26 ID:Tb1eD7sg
>>12 設計に時間かけるの「無駄」やと思っとったんや
本番後のマイグレーションにかかる時間と比べたら安いもんやった

14 風吹けば名無し 2026/06/23(火) 21:18:20 ID:Nj7rH2kp
授業料やね