我正在尝试熟悉一个结构如下的新数据库:
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。