LoginSignup
1
1

More than 5 years have passed since last update.

テーブルを分割するメリット

Last updated at Posted at 2017-02-27

あるユーザーがいて、それに1対1で対応するテーブルがある時、 A has_one B という関係が成立する

で、このとき has_one を使う理由が分からなくて、テーブルA にカラムを追加しちゃえば単純でいいじゃんと思っていたのだが
これのせいでマイグレーションに今異常に時間がかかって 暇なので 書いた。

has_manyの例しか出てこないのだが根本は同じはず

user: ユーザー
users_shifts: シフト (月~金)

class User
  has_many :shifts
end

class Shift
  belongs_to :user
end

シフトは 月~金 までしかないので、Userのカラムに追加することもできるが
それだと users テーブルにレコードが1000万行の時にAlter文がとてつもなく重くなる。
しかも土日のシフトが生まれたりするとまたAlter文を発行しなければならない。

なのでテーブルを別にすると、そういった処理が必要無い。

愚者は経験に学び、賢者は歴史に学ぶ って意味がわかった気がする。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1