只要您为连接字段创建适当的索引,性能就不会受到影响,您需要一个具有父级子关系的级别表。
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这种东西。让我知道如果你想知道更多! –