0

我正在尝试一些想法来构建一个邮政编码/城市名称表,我只会以一种方式使用它 - 给定邮政编码,返回主要城市名称(这是最常使用的方式),或返回该 zip 的所有有效城市名称的列表。我的两个想法是

1) 制作一个 3 列的表 - zip、cityName 和 primary。其中“主要”列只是一个布尔值,用于标记该行中的城市是否是该邮政编码的主要城市名称。

2)两列表,但邮政编码列将是唯一的。主要城市行有常规的“12345”拉链,备用城市名称有“12345-1”、“12345-2”等。我在想这会使获取主要城市名称变得更容易,并且我可以在需要时执行 LIKE "12345%" 来检索所有城市名称。

由于我对数据库设计真的很陌生,所以我认为你们中的一个人可能对哪个更好,或者是否有我没有想到的更好的第三种选择有所了解。

4

1 回答 1

1

我不推荐选项 2。在某些方面,您正在“设计”您的数据以适合您的模式,而不是相反。

选项 1 肯定是可行的,如果您给出了所有用例,我看不出有任何真正的缺点。只需确保添加正确的键、索引和约束即可。我可以看到你至少需要这些:

  • 主键:Zi​​p、CityName(每一行由 Zip/City 组合唯一确定)
  • 索引:Primary(能够找到所有主要城市)
  • 限制:每个邮编只有一个主要城市
于 2013-10-29T21:27:35.633 回答