gpt4 book ai didi

database - 是否值得将地址信息分解到一个单独的数据库表中?

转载 作者:太空狗 更新时间:2023-10-30 01:40:16 24 4
gpt4 key购买 nike

我有一个名为“Person”的表,其中包含以下字段

  • Id(主键)
  • 名字
  • 姓氏
  • 出生日期
  • 城市
  • 国家
  • 国家

城市、州或国家之类的东西是否应该被规范化并分解成它们自己的表,然后这个表有 CityId 和 StateId 列。我们正在争论这是一个好决定还是坏决定。

补充一下,我确实有一个城市和一个州表(出于与此人表无关的其他原因)。我对有或没有这个额外事实的答案感到好奇。

最佳答案

将地址规范化为层次结构是一个有问题的提议。这实际上取决于您打算如何处理您的地址数据。

规范化以避免更新异常的想法有点可疑。城市、州或国家实际上多久更改一次名称?此外,如果发生这种情况,这种变化是大规模的的可能性有多大? (即旧名称 X 的每个实例都更改为新名称 Y)。我可以告诉你,在 2000 年代出现一系列市政合并时,加拿大的实际情况是,边界被重新划定,许多旧名称仍然存在,只是领土比以前小了。

事实上,诸如市镇名称之类的东西可以松散地定义。例如,在我长大的地方,根据邮政当局,我的地址有三个官方认可的城市名称:WILLOWDALE、NORTH YORK 和 TORONTO——所有这些都是有效的选择,尽管一个比其他的“更官方”。问题是整个 Willowdale 都在北约克,但北约克还包含“Downsview”等。

规范化地址的其他常见论点包括:确保拼写正确并为领土管理提供基础。鉴于地址数据质量的变化无常,这些论点并不令人信服。

确保地址数据质量的最佳方法是将您的地址保持在相对扁平、相对简单的结构中,并采用一个或多个地址质量工具,这些工具使用邮政当局数据来匹配和标准化您的地址。 务必将城市、州和邮政编码保存在各自的字段中,但不要将它们保存在不同的表中。这实际上比规范化结构更灵活,同时总体上产生更可靠的结果。

同样,领土管理最好在比市政当局更精细的级别上进行。有些市镇很大,名称可能含糊不清。而是使用邮政编码或 ZIP+4(取决于司法管辖区)。这更加精细和明确。同样,地址数据质量工具将确保您的地址具有正确的邮政编码。

关于database - 是否值得将地址信息分解到一个单独的数据库表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17226201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com