単一テーブル継承

開発設計

単一テーブル継承とは?

 状態:-  閲覧数:1,459  投稿日:2009-07-09  更新日:2017-07-29  
平仮名表記
・たんいつてーぶるけいしょう

英語表記
・Single Table Inheritance

略称

・STI.

Ruby on Rails(ActiveRecord)が提供している機能
・「オブジェクト指向プログラミング」における継承を、「オブジェクト関係マッピング」において実現するための一手法
・データベーステーブルの一つの属性(フィールド)を用いて、「対応するオブジェクトが継承関係にあるクラス群のうちどのクラスに属しているのか」を識別する方法
・モデルを永続化するときに、どのクラスなのかというメタ情報を含めてデータベースに保存

一つのテーブル内で「継承関係にあるクラスのカラムを全て持つ」方法
・モデルクラスを継承で表現し、永続化部分はスーパークラスのテーブル1枚でまかなう
・継承構造にある全てのクラスの全てのフィールドを、1個のテーブルの中に対応付ける
・クラスの継承ヒエラルキーを、「様々なクラスの全てのフィールドのためのカラムを持つ1個のテーブル」として表現する

前提 / 導入メリット

 閲覧数:222 投稿日:2017-07-29 更新日:2017-07-29 

前提


データベース
・継承をサポートしない

ORマッパー
・1つのモデルと1テーブルが対応する

導入メリット


join をできる限り少なくする
複数のテーブルに置かれた継承構造の処理を速く実行できるようにする


具体例


Model AとModel Aの特例であるModel B, C, Dがあったとき
・B, C, D に対してそれぞれテーブルを作成せず、Aに対応するテーブルで、B, C, Dのモデルのデータを格納する



同義語


シングルテーブル継承

Twitter検索結果。「単一テーブル継承」に関する最新ツイート


コメント投稿(ログインが必要)



週間人気ページランキング / 6-24 → 6-30
順位 ページタイトル抜粋 アクセス数
1 Flash Video | コンテナフォーマット | プログラミング用語 306
2 curl | HTTPクライアント(ネットワーク) | プログラミング用語 286
3 ルーター | ネットワーク | プログラミング用語 281
3 ユースケース | 開発 | プログラミング用語 281
4 ベクトル | 数学 | プログラミング用語 236
5 デーモン | Linux | プログラミング用語 227
6 正規表現 | プログラミング | プログラミング用語 194
7 YouTube | API | プログラミング用語 171
8 チェックアウト | バージョン管理システム(開発) | プログラミング用語 117
9 分かち書き | 形態素解析 | プログラミング用語 63
10 Linux | プログラミング用語 57
11 リバースエンジニアリング | 開発 | プログラミング用語 54
12 ネットワークアドレス | ネットワーク | プログラミング用語 50
13 PowerShell | スクリプト | プログラミング用語 44
14 クローラ | 検索エンジン | プログラミング用語 31
14 可搬性 | プログラミング | プログラミング用語 31
15 Subversion | バージョン管理システム(開発) | プログラミング用語 27
16 アンチパターン | プログラミング | プログラミング用語 11
17 プログラミング用語 9
18 deflate | ネットワーク | プログラミング用語 8
2022/7/1 1:01 更新