【发布时间】:2009-04-21 20:18:40
【问题描述】:
考虑以下场景:
表格:
- 员工(EmpId(PK),姓名)
- TeamMembers(TeamId(PK), EmpId(PK))
- 项目(ProjId(PK), TeamId)
我真的想避免使用复合 PK,但我看到的唯一方法是创建一个只有 1 列 TeamId(PK) 的团队表(我不想存储与团队相关的任何信息,除了它的成员)(编辑:如果我创建一个团队表,我会将 TeamMeberId 添加到 TeamMembers 表并使其成为 PK)
当前设置的另一个问题是我无法在 Project 和 TeamMebers 表之间为 TeamId 设置关系
我应该只创建一个 1 列的团队表吗?在这种情况下,最好的方法是什么?
编辑
只是为了澄清一下,关于那个团队我唯一想知道的是它的存在,没有任何额外的信息
EDIT2
Tables 新设计(有什么问题吗?):
- 员工(EmpId(PK),姓名)
- 团队(TeamId(PK))
- TeamMembers(TeamMemberId(PK)、TeamId(FK)、EmpId(FK))
- 项目(ProjId(PK), TeamId(FK))
【问题讨论】:
-
我仍然不清楚你为什么需要一个团队表。尤其是新结构。如果一个团队的存在只是为了分配给一个项目,那么就不需要跟踪它。
-
@Jeremy:如果没有 Team 表,您将如何在 ProjectTable 中的 TeamId 上建立 FK 关系?
标签: sql-server database-design