【发布时间】:2011-05-27 07:27:08
【问题描述】:
我正在尝试设计一个 MySQL 数据库来存储用于提供特定服务的用户邮政编码首选项。例如,作为管道工的用户 A 愿意前往 x、y 和 z 邮政编码来提供他的服务。 我一直在思考实现这一点的各种方式,可扩展性非常重要。另外,我想在邮政编码和城市名称之间进行映射。
一种设计方法是创建一个巨大的表格,其中每一列代表一个邮政编码,每一行将存储一个带有邮政编码首选项的用户条目。但是当我添加邮政编码并说数百万用户时,这将如何扩展?我认为它不会很好地扩展,但实现起来很简单。
另一种方法是通过拥有一个主表和一堆辅助表来使这种层次结构。辅助表包含一个县的邮政编码,主表充当辅助表的键。我认为这会更好地扩展,因为表可以分布,但我可能有少量冗余,因为用户可以存储在多个表中。
无论如何,如果有任何想法、想法或替代设计可以帮助我解决这个问题,我将不胜感激。问题真的归结为,我应该如何设计这个以及为什么?
更新: 我有一个包含用户信息的单独表格。我正在尝试为用户的邮政编码首选项设计表格。
【问题讨论】:
-
附带问题:邮政编码和城市名称之间不一定一一对应。沿着得克萨斯州边界,甚至可能还有一些邮政编码仍然映射到两个州。邮政编码与邮递员的路线行驶方式有关,与地理或政治边界无关。
-
小心这种方法。示例:我在城镇线附近。线路的另一端离我不到半英里有一家比萨店。没有人知道如何将我纳入他们的交付区域。
标签: mysql database database-design