我必须在SQL Server数据库中建模并创建一个简单的关系......
团队可以分配零个或多个员工;员工只能分配到一个团队。很简单......这是我正在努力的转折......
团队有一个TeamLeader,他是一名员工。可以将TeamLeader分配给单个团队。所以,我向团队添加了TeamLeaderId,并为TeamLeaderId提供了一个独特的索引。我在Team to中的TeamLeaderId和Employees中的EmployeeId之间创建了一个外键关系。
这是针对这种情况的最佳模式,还是有更好的模式?
感谢您的帮助和指导,
麦克
答案 0 :(得分:2)
对于你提出的约束,这看起来是正确的。但是看起来你最好使用Team和Employee之间的链接表。为什么要将员工限制在一个团队中,或者让员工成为团队中的强制要求?今天有人(你?)可能认为这是唯一的方法,明天它可能会有所不同。
答案 1 :(得分:1)
最好从Team表中删除TeamLeaderId字段并创建新表TeamLeaders(使用唯一键[Employees中的EmployeeId +团队中的TeamId])
现在,您可以毫不费力地改变主意并从业务领域模型中删除团队领导:只需删除teamleaders表。
答案 2 :(得分:0)
我认为这个问题的答案很大程度上取决于系统的用法: