【发布时间】:2013-04-07 01:48:04
【问题描述】:
假设您正在设计一个 Employee 表,并且必须容纳不同的电话号码。现在是 Home、Work 和 Cell,但我想将来可能会有其他人。还可以说,企业关心知道每个员工使用什么样的手机。你会怎么设计呢?
这是一种非规范化的方式。很简单,但意味着为任何新手机类型添加一列:
员工
- 员工 ID
- 员工姓氏
- 员工名字
- 员工家庭电话
- 员工工作电话
- 员工手机
- 手机ID
手机
- 手机ID
- 手机制作
- 手机型号
这是一种更规范化/可扩展的方式,但接下来需要弄清楚类型 = 手机(但不是类型 = 家庭或工作)的电话号码的手机品牌/型号信息放在哪里:
员工
- 员工 ID
- 员工姓氏
- 员工名字
员工电话
- EmployeePhoneId
- 员工电话号码
- 电话类型ID
手机类型
- 电话类型ID
- 电话类型名称
- CellPhoneTypeId
我的倾向总是倾向于可扩展(虽然更复杂)而不是简单(但可扩展性较差),但在这里我不确定.. 尤其是当您考虑到员工可能永远不会拥有每种类型只有 1 个时的电话。如果你是可扩展的,那么未来的代码就不能做出这样的假设,并且总是必须适应同一类型的多个数字的可能性(这不太现实)。
感谢您的任何想法。
【问题讨论】:
-
类似于stackoverflow.com/questions/2596972/… 我个人会选择@mrjoltcola 选项2)可扩展性
标签: database-design