我是数据库设计的新手,对于如何最好地建模这种特殊情况有一些不确定性。对于这个相当简单的场景,我将不胜感激。
当一项生产任务开始时,始终有两个人参与。一个负责生产,一个负责质量保证。对于数据库中的任何任务,都必须能够识别这两个人。它们都存在于 Person 表中并具有 ID,因此我只想要将它们与生产任务相关联的最佳方式。存在以下规则:
- 任何一个人都可以随时换成不同的人。
- 每项任务总是涉及到两个人(这些都不是空的)。
- 从来没有其他人参与我们想要记录的任务。
- 每个人都可能参与多项任务,或者根本不参与。
如果我们在任务和人员之间有一大堆关系,我会创建某种复杂的关系结构来描述他们的关系(作为制片人、质量保证人员、监督者等),但在这里我觉得这似乎是明智的只需将两个人的 ID 粘贴在任务表中,分别在生产人员和质量保证人员的列中。由于某种我看不到的原因,这很糟糕吗?
真正引起我的问题的是,我正在尝试在 DBDesigner 4 中准确地设计它,我是新手,它只是不喜欢它 - 当我尝试在 Task 之间建立第二个非识别关系时和人,它不会给我第二个领域。它似乎也不允许我重命名 Task 中涉及人员的字段,因此无论如何都无法区分两者。由于似乎没有其他人分享这个问题,我开始怀疑这是否是一个好主意。一旦两个实体之间有两个或多个链接,就引入附加表是标准的吗?如果我想执行上述规则,那会是什么样子?我看不出如何确保 n:m 表始终为从事该任务的两个人提供条目。