人 - >细节数据库结构

时间:2009-10-04 00:08:12

标签: database-design data-modeling

我有一个域模型:
员工:Id,FirstName,LastName,Sex,BirthDate。
办公室:员工,WorkStation,OfficeName等。
联系人:员工,移动电话,电子邮件等......

但我不确定我目前的数据库结构。如何正确:Employees表有一个PK EmployeeID,Offices和Contacts表有自己的ID和对Employees表的引用,或者Employees表有EmployeeID,还通过OfficeID和ContactID保留对Office和Contscts的引用?

3 个答案:

答案 0 :(得分:1)

要以合理的正常形式,您的员工应该向办公室咨询。

假设联系人的关系是员工有一组联系人而没有其他员工分享这些联系人,那么正确的关系应该是联系人参考员工。

员工:empid,officeid

办公室:officeid

联系人:empid,contactid

答案 1 :(得分:1)

如果Office和Contact表中的数据只是增强了有关Employee的信息,我会使用EmployeeID作为主键和Employee的外键。那模型1到0..1关系。

员工:EmployeeID作为主键

Office和联系人:EmployeeID作为主键和Employee的外键

答案 2 :(得分:0)

您的模型并未明确说明员工,办事处和联系人之间的关系。 具体来说,这些关系是一对一,一对多还是多对多?一旦您编目了您想要建模的关系,数据库的外键结构就会变得清晰。