【发布时间】:2009-06-03 08:53:54
【问题描述】:
我想为我的应用程序设计一个数据库,但我对如何定义实体之间的关系有疑问。
我有 2 个相关实体,其 ID 是复合的。例如:
- 由属性[街道号码、门牌号码、城市、国家/地区]和电话号码(xx-yyyyyy)标识的地址实体
- 由属性 [区域编号,编号] 标识的实体。
关系是“每个地址有几个电话号码。我有两种可能的方式来定义表格:
- 由所有 ID 字段连接的表
- 地址→[街道号码、门牌号码、城市、国家、...、地区号码、号码]
- PhoneNumber → [地区号码,号码,...]
- 具有由该字段连接的 ID 字段 (GUID) 的表。
- 地址 → [ID、门牌号、门牌号、城市、国家、...]
- PhoneNumber → [ID、地区号码、号码、...、AddressID]
在第一种解决方案中,主键将是标识实体的所有字段,而在第二种解决方案中,主键将仅是ID字段。
我的问题是 - 更好的方法是什么? (按性能、维护、设计等...)
【问题讨论】:
标签: database-design