【发布时间】:2015-10-08 00:01:14
【问题描述】:
我正在设计一个数据库,其中包含所有具有地址数据的供应商、客户、用户、客户站点等信息。我已选择使用三个标准地址行、城镇/城市、县和邮政编码字段。
我的问题是,最好将这些字段放在所有需要它们的表中,还是有一个地址表并将地址 id 链接到相关表?
非常感谢
加文。
【问题讨论】:
我正在设计一个数据库,其中包含所有具有地址数据的供应商、客户、用户、客户站点等信息。我已选择使用三个标准地址行、城镇/城市、县和邮政编码字段。
我的问题是,最好将这些字段放在所有需要它们的表中,还是有一个地址表并将地址 id 链接到相关表?
非常感谢
加文。
【问题讨论】:
如果多个字段可能具有相同的地址,我会将地址放在各自的表中。这有助于防止插入/更新异常等。如果每个地址都是唯一的,那么它可能就没那么重要了。
一般来说,经验法则是“从不重复数据”。因此,如果多行具有相同的值,那么这些值就有可能被移动到它们自己的表中。
【讨论】:
| id | street address | city | state | zip | 一张桌子就足够了。有人会说您可以将城市州邮政编码移到它自己的表格中以增加规范化(因为一个城市,州组合只能有一个邮政编码),但我认为这并不总是必要的。无论如何,使用此地址表,您可以使用fk_address 之类的列从第一个地址表链接到它。