如何设计优雅地代表ADDRESS的数据库模式?

het*_*log 4 database database-design database-schema

按地址,我只指国家,州,城市,地区,街道,建筑物,

在哪里可以有效地在其他表格(例如人员)中引用该地址,以便我们可以选择同一城市等的人员​​?谢谢。

Den*_*rdy 5

以我的经验,您需要国家,州,城市,邮政编码,地址。

仅前三个/四个方便过滤用户。枚举字段非常适合前两个字段。理想情况下,以下两个使用API​​进行了验证-这将避免您需要维护有效值列表的麻烦。

我还没有碰到任何需要将地址部分分成单独的数据块以进行更精确过滤的任何系统(尽管我认为邮局会需要它以及地理位置),而且每个用户都有自己的进入后者的方式。

请记住,有些国家没有州。其他人没有邮政编码;邮递区号格式因国家而异。

还要记住,即使一个用户在系统中可以有多个地址,最后要做的就是将多个用户绑定到同一个address_id。通常最好将它们放在用户(或他们的公司)的详细信息中,或作为与后者有关的1-n相关信息。从来没有 否则,UI问题会迅速蔓延,有人总是会错误地编辑用户B的地址,因为后者恰巧与用户A共享了地址。