我有一个域模型:
员工:Id,FirstName,LastName,Sex,BirthDate。
办公室:员工,WorkStation,OfficeName等。
联系人:员工,移动电话,电子邮件等......
但我不确定我目前的数据库结构。如何正确:Employees表有一个PK EmployeeID,Offices和Contacts表有自己的ID和对Employees表的引用,或者Employees表有EmployeeID,还通过OfficeID和ContactID保留对Office和Contscts的引用?
答案 0 :(得分:1)
要以合理的正常形式,您的员工应该向办公室咨询。
假设联系人的关系是员工有一组联系人而没有其他员工分享这些联系人,那么正确的关系应该是联系人参考员工。
员工:empid,officeid
办公室:officeid
联系人:empid,contactid
答案 1 :(得分:1)
如果Office和Contact表中的数据只是增强了有关Employee的信息,我会使用EmployeeID作为主键和Employee的外键。那模型1到0..1关系。
员工:EmployeeID作为主键
Office和联系人:EmployeeID作为主键和Employee的外键
答案 2 :(得分:0)
您的模型并未明确说明员工,办事处和联系人之间的关系。 具体来说,这些关系是一对一,一对多还是多对多?一旦您编目了您想要建模的关系,数据库的外键结构就会变得清晰。