0

假设我们的 Web 应用程序由许多模块组成。每个模块都有自己的表格。

现在,如果我需要保持我的模块和另一个模块之间的关系,理想情况下,我将创建另一个表,如 module1_module2_relationship,它将具有模块 1 pk 和模块 2 pk。假设我还需要存储更多关于此关系的列,我将在此关系表中添加更多列。

但是我的模块可以与许多模块有关系,我不想为每个模块创建新表。

这里的要点是给定我的模块 ID,我需要知道它关联的所有模块是什么?而且我不想对每个关系表运行查询,只是找出表中是否存在模块 ID。

我如何设计这样的数据库?

4

2 回答 2

0

我们的 Web 应用程序由许多模块组成。每个模块都有自己的表格。

好的。那很有意思...

如果我需要保持我的模块和另一个模块之间的关系,理想情况下我会创建另一个表

是的。非常正确。

但是我的模块可以与许多模块有关系

不是问题!

我不想为每个模块创建新表。

哇!!!!

您将拥有一个“模块关系”表。每行将有两个外键:每个“模块”一个。

添加新关系?很简单:添加一个新行。

与新模块建立新关系?同样简单:只需添加另一行。

一张关系表。尽可能多/尽可能少的行。真的就这么简单:)

于 2013-05-24T03:47:52.493 回答
0

您可以制作一张表来保存与描述模块的列以及模块的 PK 的所有关系:

tblModuleRelationship
---------------------
Module1_Name
Module1_PK
Module2_Name
Module2_PK

并在所有 4 列中创建唯一约束。

明显的缺点是你不能真正使用 FK 关系

于 2013-05-24T03:47:56.030 回答