我正在重新创建公司数据库的一部分,因为它不能满足未来的需求。目前我们主要有一个平面文件和一些从未完全实现的脱节表。

我的想法是,我们为每个类别都有一个表,除了 zips 表,它可以作为将所有内容连接在一起的表。请参考下图:

数据库图 http://www.freeimagehosting.net/uploads/248cc7e884.jpg

我正在考虑的一件事是删除邮政编码表并将邮政编码放入 zipstocities 表中,因为邮政编码几乎是唯一的,然后在邮政编码上索引该表。唯一的缺点是邮政编码必须是 varchar 才能处理带有前导零的邮政编码。只是想知道我的逻辑是否有问题。

有帮助吗?

解决方案

我不太了解美国的邮政编码和领土划分系统,但我认为它有点像德国的。

  • 一个州有很多县。
  • 一个县有很多个市。
  • 一个城市有许多邮政编码。

因此我将使用以下模式。

ZipCodes          CityZipCodes
------------      ----------------      Cities
ZipCode (PK) <─── ZipCode (PK)(FK)      -----------
                  City    (PK)(FK) ───> CityId (PK)
                                        Name
                                        County (FK) ───┐
                                                       │
                                                       │
                                     Counties          │
                                     -------------     │
              States                 CountyId (PK) <───┘
              -----------------      Name               
              StateId      (PK) <─── State    (FK)
              Name
              Abbreviation

针对每个邮政编码的多个城市进行了修复。

其他提示

您应该知道的一件事是,并不是所有的城市都在县。在弗吉尼亚州,你是在任何一个城市或县城,但从来没有两个。

看你有该图中,状态表是4页以外的表这确实是必要的唯一的一个。只用一个ID和一个单值查找表是不值得的。这些关系的目的是使在主表(ziptocities)单个值是指一组查找表(州)相关数据。

你需要问自己,为什么你关心县。在美国的许多州,他们必须超越传统的地图并不重要。

另一个问题将是如何的重要会不会是地址是准确的?还会有多少人死亡是如果重要的信件没有及时交付(可能很多,如果这封信是关于处方药品召回!)

您可能要考虑使用来自邮政服务的数据,可能使用校正地址的产品。这样一来,当你得到一个很好的解决,你会某些邮件可以在那里交付 - !因为邮政服务会这么说。

有似乎是在过程和你的逻辑二者的缺陷。

我建议你停止思考了片刻表和关系。相反,想想事实。让你的数据库需要支持有效地址的列表。很多惊喜等待着你。

不要用邮寄标签混淆的地址。他们不是在所有的同样的事情。考虑造型运营商了。在美国,无论是地址是有效取决于载体。例如,我的邮政信箱是一个有效的地址时,载体是USPS,但不是当载体是UPS。

要节省时间,你可以尝试浏览上的 bitboost

请问你的逻辑工作,如果两个国家恰好有相同的邮政编码?这两个会被指向在这种情况下不同的城市。这里有一些需要考虑的要点。

  1. 请您要使用邮政编码作为一种 的主键到地址? (在 租赁城市,州和国家 字段)。在这种情况下,你可以有 邮政编码,城市,州,国家在一个 表。创建于城市,国家索引 等等。(你有一个功能 形式的依赖 zipcode->国家,州,市。这个 正如我所说的可能不是真正的跨越 国家。
  2. 如果自动填充是 你唯一的关注,创造一个 物化视图并使用它。
  3. 我建议由David C.干草读取“数据模型模式”。

但不是每个人谁拥有有效的医疗要求的法律要求留在美国直到索赔解决。人挪。

旧金山是加州一个城市;它不是在阿拉巴马州的一个城市。请问您的设计防止像废话条目“旧金山,AL”?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top