次のような構造の新しいデータベースに慣れようとしています。
CREATE TABLE [TableA] (ID int not null, Primary Key (ID))
CREATE TABLE [TableB] (ID int not null, Primary Key (ID))
CREATE TABLE [TableC] (ID int not null, ID2 int, ID3 int, ID4 int, primary key (ID),
FOREIGN KEY (ID2) REFERENCES TableA(ID), FOREIGN KEY (ID3) REFERENCES TableB(ID))
テーブル C は、テーブル A とテーブル B の間の多対多のジャンクション テーブルです。TableC.ID は一意です (主キーであるため)。TableC.ID4 も一意であり、何も参照していないようです。「M1(多対1)エンティティの非正規化」と説明した開発者に連絡しました。非正規化 (データベースを正規化し、パフォーマンス上の理由から意図的に異常を導入すること) の目的を完全に理解していますが、この背後にある理由はまだ理解していません。私が気付いていないパターンや概念はありますか? アプリケーションは C++ で書かれており、VB.NET が少し含まれています。