【问题标题】:Database design for addresses地址的数据库设计
【发布时间】:2015-10-08 00:01:14
【问题描述】:

我正在设计一个数据库,其中包含所有具有地址数据的供应商、客户、用户、客户站点等信息。我已选择使用三个标准地址行、城镇/城市、县和邮政编码字段。

我的问题是,最好将这些字段放在所有需要它们的表中,还是有一个地址表并将地址 id 链接到相关表?

非常感谢

加文。

【问题讨论】:

    标签: mysql database


    【解决方案1】:

    如果多个字段可能具有相同的地址,我会将地址放在各自的表中。这有助于防止插入/更新异常等。如果每个地址都是唯一的,那么它可能就没那么重要了。

    一般来说,经验法则是“从不重复数据”。因此,如果多行具有相同的值,那么这些值就有可能被移动到它们自己的表中。

    【讨论】:

    • 谢谢麦克亚当。我知道一般规则是不重复数据,但不确定该规则是否扩展到字段名称?
    • 我不确定你的意思?我所说的重复数据的意思是,如果有两个客户住在“12345 Blueberry Lane”,那么您可能希望将地址放在他们自己的表中并链接到他们,这样“12345 Blueberry Lane”只会出现在某处的一行中,而不是两行。
    • 对不起,我的意思是在几个不同的表中说出邮政编码或街道字段。
    • 没有。我认为只有| id | street address | city | state | zip | 一张桌子就足够了。有人会说您可以将城市州邮政编码移到它自己的表格中以增加规范化(因为一个城市,州组合只能有一个邮政编码),但我认为这并不总是必要的。无论如何,使用此地址表,您可以使用fk_address 之类的列从第一个地址表链接到它。
    猜你喜欢
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多