TASK链接到TASK_ROLE,它将party +角色与特定TASK相关联。我需要另一个表TASK_RATE,它存储参与特定任务的每一方的速率。我可以将这些与FK的关联转换为TASK_ROLE,但问题是一方可以拥有多个角色并且可以多次列出。
TASK:
PKIDTASK
1
2
3
TASK_ROLE:
PKIDTASK_ROLE | IDTASK | IDPARTY | IDROLE
1 1 8 3
2 1 8 2
3 1 5 2
4 1 4 2
我想要创建像这样的表
TASK_RATE:
PKIDTASK_RATE | IDTASK | IDPARTY
1 1 8
2 1 5
3 1 4
IDTASK + IDPARTY是独一无二的,与TASK_ROLE不同。但是这不是多余的信息,因为PARTY-TASK关联已经在TASK_ROLE中定义了吗?
我该如何解决这个问题?
答案 0 :(得分:0)
如果要完全规范化数据模型,可能需要以下内容:
由于各方被分配到任务,并且这些任务具有各种其他相关数据,因此您应该首先在PARTY和TASK之间交叉多对多。
您正在跟踪的其他内容是此交叉点的分支。例如,每个参与方被分配给可用的参与方任务分配中的一个(或多个?)角色。
同样,对于给定的一方任务分配,将有多个费率(随着时间的推移)。 Party Task Rate表将需要一个有效的到期日期(+时间,如果适用)。