単一テーブル継承とは
単一テーブル継承
(single table inheritance:STI)とは
オブジェクト指向プログラミングの継承概念をリレーショナルデータベースで擬似的に実現する方法。Railsではtypeカラム(またはモデルクラスのinheritance_column属性に指定されたカラム)にクラス名を記載することで単一継承テーブルを実現している。
class Address < ApplicationRecord
end
class HomeAddress < Address
end
class WorkAddress < Address
end
ほとんど同じデータベース設計であればそれぞれ個別にテーブルを作成するよりも整理できる。また、検索時のパフォーマンスが上がるなどの効果もある。
参考情報: