STI
概要
Single Table Inheritance(単一テーブル継承)
1つのテーブルに複数モデルクラスのレコードを記録して、取得すると各モデルクラスのオブジェクトとして扱うことができる仕組み
問題点
1つのテーブルを全てのモデルクラスで共有するため、個々のモデルごとに別のカラムをつくりたいときには、その共有されているテーブルへカラムを追加するしかなく、必要ではないモデルにまでカラムが追加されてしまう問題がある
サブクラスが独自の属性を多く持つ場合、多くのカラムが未使用のままになりがち
1つのテーブルに異なる目的のデータが混在するため、時間の経過とともにテーブルが複雑になる可能性がある
メリット
共通の属性とメソッドを1つのテーブルと親クラスで管理できる
データベースの正規化を維持しながら、オブジェクト指向の継承を利用できる