私たちのDBには、絶えず挿入および更新されている数百万の行を持つ単一の中心テーブルがあります。このテーブルには、一意の識別子として機能する単一の列があり、このテーブルのコンテンツを1対多の関係を持つ複数のテーブルにリンクするために使用されます。
これは、たとえばUSERSテーブルにエントリを挿入すると、同じトランザクションでUSERS_PETSとUSERS_PARENTS(およびそれ以上)に、メインテーブルの同じ一意の識別子に基づいて複数の行が入力されることを意味します。
このDBを使用するアプリケーションは常に新しいエントリを挿入し、既存のエントリを更新するため、これらのテーブル間の関係はアプリケーションレベルでのみ保持されます(つまり、FK / PK減速を介してこれを処理する代わりに論理ERD)。
質問:
- これは、純粋なパフォーマンスの観点から、これが最善のアプローチであると想定するのは正しいですか?
- パフォーマンスに影響を与えることなく、これらのキーを設定する方法はありますか(DBがより自己記述的になるように)?