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

Database design 如何设计数据库来创建多个模块之间的关联?,database-design,Database Design,假设我们的web应用程序由许多模块组成。每个模块都有自己的表 现在,如果我需要保持我的模块和另一个模块之间的关系,理想情况下,我将创建另一个表,如module1_module2_relationship,它将具有模块1 pk和模块2 pk。假设我还需要存储更多关于此关系的列,我将向此关系表中添加更多的列 但是我的模块可以与许多模块有关系,我不想为每个模块创建新表 这里的要点是给定我的模块Id,我需要知道它与哪些模块关联?我不想对每个关系表运行查询,只想找出表中是否存在模块id 如何设计这样的数据

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

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

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

这里的要点是给定我的模块Id,我需要知道它与哪些模块关联?我不想对每个关系表运行查询,只想找出表中是否存在模块id

如何设计这样的数据库

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

嗯。那很有趣

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

是的。完全正确

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

没问题

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

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

添加新关系?简单:添加新行

是否创建与新模块的新关系?同样简单:只需添加另一行


一个关系表。需要多少行就多少行。其实很简单:)

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

tblModuleRelationship
---------------------
Module1_Name
Module1_PK
Module2_Name
Module2_PK
并跨所有4列创建唯一约束


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

谢谢你的回答。如果我只有一个关系表,其中只有pk列,那么我如何通过查看pk来知道模块名称。很可能我不仅需要存储某个模块的pk,而且还需要存储该模块中的几个列。e、 g.模块1主键-模块2主键,模块2(其他一些列。每个模块的列数可能不同。您可以朝某个方向走,就像您可以在关系表中添加更多的列一样,如module1名称、module1 ID、module2名称、module2 ID。我想这里可以解决您的问题还是否?