** 的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
問題:
有沒有其他的選擇,我可以採取?
是選項二,正確的方法,並在性能方面可以嗎?
謝謝。