単一テーブル継承とは

単一テーブル継承
(single table inheritance:STI)とは

オブジェクト指向プログラミングの継承概念をリレーショナルデータベースで擬似的に実現する方法。Railsではtypeカラム(またはモデルクラスのinheritance_column属性に指定されたカラム)にクラス名を記載することで単一継承テーブルを実現している。

class Address < ApplicationRecord
end
class HomeAddress < Address
end
class WorkAddress < Address
end

ほとんど同じデータベース設計であればそれぞれ個別にテーブルを作成するよりも整理できる。また、検索時のパフォーマンスが上がるなどの効果もある。

参考情報:


この記事が気に入ったらサポートをしてみませんか?