【问题标题】:Data Model for addresses with varying number of address lines具有不同地址线数量的地址的数据模型
【发布时间】:2012-08-01 20:07:45
【问题描述】:

我的问题:

我将如何在后端和前端实现数据库设计,以将不同数量的地址行(例如 AddressLine1、AddressLine2、AddressLine3 等)容纳到无穷大,同时保持直观的前端用户体验。我希望这能够最大限度地提高数据库开发后合并文档的清洁度和易用性。有些地址只有一条街道线,而其他地址甚至可以有五条甚至更多。

背景:

我对数据建模和数据库设计非常陌生。我还不了解数据库建模对前端表单的设计方式以及特定设计可能带来的问题的影响。因此,我不确定我所寻求的是否是一个大错误。

我正在为一家律师事务所设计一个案件管理数据库。我们计划创建一个单独的地址表,并在人员/实体和地址之间建立多对多关系——即,许多人/实体可能有许多地址,而同一个地址可能属于许多人/实体。

谢谢!

【问题讨论】:

  • “我对数据建模和数据库设计非常陌生......我正在为一家律师事务所设计一个案例管理数据库”。请不要对此感到生气,但在我看来,这听起来像是你在你的头上。你问的问题是一个非常广泛和深刻的话题。也就是说,谷歌“数据库规范化”和“数据库 1-n”开始。祝你好运。
  • 您能否具体讨论地址数据模型中多条不同街道线的想法?我还没有看到关于这个特定想法的讨论,我想确保在我开始处理用户表单时不会为问题做好准备。谢谢。

标签: database database-design data-modeling datamodel


【解决方案1】:

通常,对于地址,数据不会通过行标准化。因此,地址表将只有 AddressLine1 和 AddressLine2 之类的字段。

较大的地理信息(例如:城市、州、国家、邮政编码)将存储在地址记录的单独字段中。

这样做的原因很实际。地址通常是打印出来的,并且可用的打印空间有限。例如,如果有四行,则有姓名、地​​址第 1 行、地址第 2 行和城市/州/国家/地区/邮政编码。

如果您确实需要存储无限数量的行,您可以使用 AddressLines 表来完成。 AddressLines 表将包含字段,例如:

  • AddressId -- 所属的地址记录
  • 行号
  • 行内容

但是,这似乎有点过头了。

您更大的问题是标准化地址。你有没有想过? (你知道:“101 6th Avenue”、“101 Sixth Ave.”和“101 Avenue of the Americas”在纽约市都是同一个地址。)

【讨论】:

  • 您对地址标准化有何建议? : ) 也许更聪明的方法是只使用一条地址线、一个套房/公寓字段,以及街道线上方的一两条可选线,某些地址就像建筑物的名称一样。你认为什么是最好的?
  • 您可以google地址更正/清理/标准化服务和软件。这些通常会做其他事情,例如将 zip+4s 附加到地址上。我的猜测是包含以下字段的地址表应该足够了:地址行 1、地址行 2、城市、州/省、邮政编码、国家。但是,如果不对地址进行标准化,尝试共享它们是雄心勃勃的。
  • 谢谢。我没有考虑过地址标准化,将仔细研究。
  • 该数据库最初只是作为案例和客户数据的存储库,但随着时间的推移会演变成更雄心勃勃和更有用的东西。我只是想确保从一开始就使用正确的数据模型以适应其持续的扩展和发展。
  • AddressLines 表一点也不夸张。我认为这是一个很好的建议,特别是鉴于 op 的评论,“将不同数量的地址行,如 AddressLine1、AddressLine2、AddressLine3 等容纳到无穷大”。好答案,+1。
猜你喜欢
  • 1970-01-01
  • 2021-04-22
  • 2018-02-04
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多