2个关系之间可以有关系数据库吗?

问题描述

考虑项目任务用户(附上ER图)之间的场景:

  1. 一个项目可以有多个任务,一个任务可以在多个项目中(因此是多对多关系ProjectTask
  2. 一个项目可以有多个用户一个用户可以在多个项目中(因此是多对多关系ProjectUser

Check the above example's ER Diagram here

现在一个ProjectTask可以分配给多个ProjectUser,一个ProjectUser可以分配多个ProjectTask,基本上是TasksAssigned关系

我将如何将该信息存储在数据库中?两个关系可以建立关系吗?如果是,是否有更好的方式来展示这种情况?如果不是,您如何显示这种关系?

解决方法

就您而言,您可以建立三方关系:

  • user
  • project
  • task

您可能希望保证用户和任务具有相同的项目。这可以通过向 projectTasksprojectUsers 表声明复合外键来处理。该结构保证用户和任务在同一个项目中(因为它在此表的行中明确提及)。