只要您爲連接字段創建適當的索引,性能就不會受到影響,您需要一個具有父級子關係的級別表。
Area: { area_id (pk), area }
Region: { region_id (pk), area_id (fk), region }
District: { district_id (pk), region_id (fk), district }
然後你Store
表將不得不區內的更具體的位置的參考。
Store: { store_id (pk), district_id (fk), <other store fields>}
如果從一些特定的區域要存儲您加入所有表
SELECT S.*
FROM Stores S
JOIN District D ON S.distric_id = D.distric_id
JOIN Region R on D.region_id = R.region_id
JOIN Area A on R.area_id = A.area_id
WHERE A.area = 'some area'
編輯:也許我理解的地理倒退。對於我的例子,我假設Area是更大的幾何體,而District是更小的幾何體。
我*愛* hierarchyid這種東西。讓我知道如果你想知道更多! –