2014-09-23 127 views
0

我有以下的数据库设计:关系数据库设计周期

enter image description here

我想添加一个名为任务新表,这将有一个项目一个一个一对多的关系(项目将有一个或多个任务和特定任务将只属于一个项目)。接下来的用户也将被分配到一个项目中的不同任务(基本上,用户表需要与任务存在多对多的关系,但这会在设计中创建一个循环)。这是一种很好的做法,还是应该避免在设计中制造环路?

回答

0

下用户也将在项目分配给不同的任务(主要用户表需要另外许多与任务一对多的关系...)

大概不会。

可能只需要那些与特定项目相关的用户分配到特定任务。所以你需要一个任务的外键来引用项目的用户,似乎是一个奇怪的命名表“Project_userprojectrelation”。

当您需要级联更新或删除时,“循环”有时很麻烦。但是通常可以从循环的“结束”或“中间”向“顶部”删除行。唯一不能正常工作的是当你有外键在循环中沿相同方向追逐对方时。大多数dbms会警告你这种问题。