假设您正在设计一个Employee表,并且必须容纳不同的电话号码.. Home,Work和Cell,但我想将来可能会有其他人。我们还要说,企业关心每个员工使用哪种手机。你会如何设计它?
这是一种非规范化的方式。很简单,但后来意味着为任何新手机类型添加一列:
员工
手机
这是一种更加规范化/可扩展的方式,但是后来确定将CellPhone制作/模型信息放在type = cell(但不是type = home或work)的电话号码的位置:
员工
EmployeePhone
PHONETYPE
我的倾向总是倾向于可扩展(虽然更复杂),而不是简单(但不那么可扩展),但在这里我不确定......特别是当你认为一个员工可能永远不会只有1个电话如果你可扩展,那么未来的代码就不能做出这样的假设,并且总是必须适应同一类型的多个数字的可能性(这不太现实)。
感谢您的任何想法。
答案 0 :(得分:1)
员工
EmployeeID
EmployeeLastName,EmployeeFirstName
电话
PhoneID
PhoneTypeID,PhoneNumber
PHONETYPE
PhoneTypeID
Phonemake,Phonemodel
EmployeePhone
员工ID,联系
PhoneId,Notes
我建议完全放弃Phonetype
。实际上,这是不相关的 - 它很快就会变得陈旧垃圾。我看不出任何高级管理人员会觉得有必要打扰他们告诉IT他们最新玩具的细节。毕竟,IT应该自动知道,不应该吗?
我要添加一个Contact
字段 - 看,我对字段名称不太好,好吗?我的意思是reason for contact
可能是'工作'或'家'或'周末'或'高尔夫俱乐部(星期四)'或其他什么。如果Notes
是'医疗紧急',Ask for Jacinta
可以用于contact
。
至于拥有多部手机 - 我认识的医生带有三部手机 - 除了他的办公室电话,练习电话,至少2部办公室医院电话,公共电话在家和私人电话 - 家(以及多个家庭......)他很难记住所有的数字......
答案 1 :(得分:0)
这样的东西?
Phone
ID
Name
Number
Type ENUM('Work', 'Home','Cell')
Employee
ID
EmployeeLastName
EmployeeFirstName
EmployeePhone
ID
EmployeeID
PhoneID