让我们说我们的Web应用程序包含许多模块。每个模块都有自己的表。
现在,如果我需要保持我的模块和另一个模块之间的关系,理想情况下我将创建另一个像module1_module2_relationship的表,它将具有模块1 pk和模块2 pk。假设我还需要存储更多关于此关系的列,我将在此关系表中添加更多列。
但我的模块可以与许多模块有关系,我不想为每个模块创建新表。
这里的要点是我的模块ID,我需要知道它与之相关的所有模块是什么?而且我不想对每个关系表运行查询,只是找出表中是否存在模块ID。
如何设计此类数据库?
答案 0 :(得分:0)
我们的Web应用程序包含许多模块。每个模块都有自己的表。
行。这很有意思......
如果我需要保持我的模块和另一个模块之间的关系,理想情况下我会创建另一个表
烨。完全正确。
但我的模块可以与许多模块有关系
没问题!
我不想为每个模块创建新表。
哇!!!!
您将拥有完全一个“模块关系”表。每行将有两个外键:每个“模块”一个。
添加新关系?简单:添加一个新行。
与新模块建立新关系?同样简单:只需添加另一行。
一个关系表。您需要的行数量很少/很少。这真的很简单:)
答案 1 :(得分:0)
您可以创建一个表来保存与描述模块的列以及模块的PK的所有关系:
tblModuleRelationship
---------------------
Module1_Name
Module1_PK
Module2_Name
Module2_PK
并在所有4列中创建唯一约束。
明显的缺点是你无法真正使用FK关系