有一个列的表有什么问题吗?(MSSQL服务器)

rom*_*n m 0 sql-server database-design

请考虑以下情形:

表:

  • 员工(EmpId(PK),姓名)
  • TeamMembers(TeamId(PK),EmpId(PK))
  • 项目(ProjId(PK),TeamId)

我真的想避免使用复合PK,但我看到问题的唯一方法是创建一个只有1列TeamId(PK)的Team表(我不希望存储与团队以外的其他成员关联的任何信息) (编辑:如果我创建一个团队表,我会将TeamMeberId添加到TeamMembers表并使其成为PK)

当前设置的另一个问题是我无法在Project和TeamMebers表之间为TeamId设置关系

我应该只创建1列Team表吗?在这种情况下,最好的方法是什么?

编辑

为了清理问题,我唯一想知道的关于该团队的是它的存在,没有任何其他信息

EDIT2

表新设计(有什么不妥吗?):

  • 员工(EmpId(PK),姓名)
  • 团队(TeamId(PK))
  • TeamMembers(TeamMemberId(PK),TeamId(FK),EmpId(FK))
  • 项目(ProjId(PK),TeamId(FK))

Ron*_*erg 5

如果一个团队唯一感兴趣的事实是它存在,那么Team只有一列的表没有任何问题:TeamId.它确保来自TeamMembersProject表的引用完整性.

但我不明白你对复合PK的反对意见.列TeamIdEmpIdTeamMembers表是alreay复合主键.

  • 创建Team表,使用它来维护Project和TeamMembers表的参照完整性(FK). (2认同)