最も一般的な2つのアプローチは、クラスごとのテーブル(つまり、基本クラスのテーブルと、サブクラスを説明するために必要な追加の列を含むサブクラスごとの別のテーブル)と階層ごとのテーブル(つまり、1つのテーブルにすべての列があり、1つ以上の鉱石がある)です。サブクラスの識別を可能にする列。どちらがより良いアプローチであるかは、アプリケーションの詳細とデータアクセス戦略によって異なります。
最初の例では、FKの方向を逆にして、親から余分なIDを削除することにより、クラスごとのテーブルを作成します。他の2つは、基本的にクラスごとのテーブルのバリエーションです。