如何设计数据库以创建多个模块之间的关联?

时间:2013-05-24 03:39:21

标签: database-design

让我们说我们的Web应用程序包含许多模块。每个模块都有自己的表。

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

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

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

如何设计此类数据库?

2 个答案:

答案 0 :(得分:0)

  

我们的Web应用程序包含许多模块。每个模块都有自己的表。

行。这很有意思......

  

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

烨。完全正确。

  

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

没问题!

  

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

哇!!!!

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

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

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

一个关系表。您需要的行数量很少/很少。这真的很简单:)

答案 1 :(得分:0)

您可以创建一个表来保存与描述模块的列以及模块的PK的所有关系:

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

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

明显的缺点是你无法真正使用FK关系