我正在设计一个数据库,我的表格如下
Company( ID, Name, ) Department( ID, Title, CompanyID (FK_Department_Company) UNIQUE(Title,CompanyID) ) Employee( ID, Fname, LName, CompanyID, (FK_Employee_Company) DepartmentID (FK_Employee_Department) )
所以我发现有可能插入错误的数据 进入员工表
这里是样本值
company (
25,Spar Pvt LTD, Sweden, 12345678.
26,Mr.Wheel Pvt Ltd, Germany, 123456789)
Department(
101, Manager,25
102, Front Desk,25
103, Host,26)
Employee( 81,25,103,....)
这里DepartmentID 103属于CompanyID 26,但我仍然可以插入, 所以无论如何都要解决这个问题(sqlserver), 或者我必须改变设计,请给我一些建议和想法。
此致
答案 0 :(得分:4)
您在Employee表中不需要CompanyID
上述两条陈述
这意味着
因此,中间部门表隐含了Employee-Company关系。不需要单独的外键/列
tl; dr:通过这个断言确定:“......一名员工属于一家公司”。