** 的PHP/MySQL这里使用 **数据库设计/性能 - 基于城市/城镇位置按公司覆盖
场景:
配送公司拥有全国各地的许多仓库/仓库国家,每个仓库只覆盖选定的城市/城镇。当用户访问他们的网站时,他们可以搜索最近的/本地的软件仓库。
我看着两个选项,每个解释如下:
方案一(无效):
我存储与纬度和经度各仓库和做一个简单的搜索半径,因此,当用户进入他们的城市/城镇时,我使用谷歌地图进行地理编码,并运行半径查询以将所有仓库的距离限制在25英里以内,这是行得通的。
但它有一个很大的缺点,一些仓库不包括选定的城市/城市,而半径搜索没有考虑到这一点,导致它将在结果中显示仓库/仓库,即使它们不覆盖该区域。
方案二:
店/镇名单城市在另一个表中的一个数据库表和仓库。然后建立关系表,将仓库链接到它们覆盖的城镇/城市。用户必须输入确切的城市(这里使用的mySQL LIKE
)名称来返回结果,这将搜索城市表格,然后执行LEFT JOIN
到depots表。
这里的缺点是关系表会增长很快可以有高达500万条记录,这可能会在后期出现性能问题。
数据库设计选项二:
车厂表
- ID
- D_NAME
- D_ADDRESS
- D_POSTCODE
- D_TEL
- AND SO ON…
市台
- ID
- NAME
关系表
- ID
- CITY_ID
- DEPOT_ID
问题:
有没有其他的选择,我可以采取?
是选项二,正确的方法,并在性能方面可以吗?
谢谢。