単一テーブル継承(Single Table Inheritance)

ORマッパーの場合、1つのモデルと1テーブルが対応する。このとき、Model AとModel Aの特例であるModel B, C, Dがあったとき、B, C, D に対してそれぞれテーブルを作成せず、Aに対応するテーブルで、B, C, Dのモデルのデータを格納するのが単一テーブル継承。Ruby on RailsActiveRecord)で提供している機能。Martin Fowler: Pattern of EAA Catalog, Class Table Inheritanceを解決するための実装。

とても便利そう。でも、単一テーブル継承は便利だけど、フィールドの肥大および使用しないフィールドを増やす恐れがあるのでできるだけ使うなという意見もある。