在sql数据库中管理位置的最佳方法是什么

时间:2014-06-11 13:29:36

标签: mysql sql database database-design database-schema

我正在工作门户网站上,我必须将候选人的位置存储在" CandidateInfo"表。最好的方法是什么?

我知道的简单方法是填充城市表并允许用户从下拉列表中选择一个并将CityID存储在CandidateInfo表中。但是,如果用户搜索的城市在数据库中不可用,那么我应该为用户提供手动输入城市名称的选项。这是我的问题出现的地方。

1)我应该将这个新打字的城市添加到我的城市表吗?然后引用其他表中行的ID OR

2)我应该在CandidateInfo表的单独列中添加新键入的城市吗?

LinkedIn& Facebook管理这个?我猜纬度和经度不是最好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

我过去对城市,县,职业这样的大型名单采取的方法是拥有一个公司批准的主列表,其中包含拼音代码以允许拼写错误。

我还有一个词库集合,因为英国各县特别有不同的代表,即Shropshire,Salop,Shrops。

同义词库将包含主列表包含的所有条目以及替代术语。

在大多数情况下,同义词库和语音代码就足够了。

如果客户坚持要添加某个县的特定表示,那么用户界面允许他们这样做,但后台数据存储有一个显式数据存储来捕获错过的术语。这允许发生两件事 1.应就如何处理此类事件作出商业决定。通常将新术语添加到同义词库数据集。 2.允许数据被清理并且回顾性地符合。

从主列表中删除条目。自由格式条目对同义词库起作用并映射同义词术语,从而返回主列表。它是同义词ID值,记录在客户数据集中。

这意味着下游数据消费者可以获得一个漂亮的干净数据集,同时也可以全面了解进入不同内容的客户行为。

这可能比您希望的更多,但我发现它可以支持客户的需求,并为业务用户提供有用的信息。