我正在开发一个包含以下标题的数据库:
地区,城市,郊区
每个标题都有大约4000行,所以我猜我用一个单独的表而不是一个有很多列的表会更好。
设置区域ID城市ID和郊区ID的最佳方法是什么?当我想选择特定地区的信息时?
答案 0 :(得分:1)
虽然有几种方法可以对这些表进行建模,但这是设置它的一种方法:
Region
id int, -- PK
name varchar(50)
City
id int, -- PK
region_id int, -- FK
name varchar(50)
Suburb
id int, -- PK
city_id int, -- FK
name varchar(50)
然后,如果您需要数据,您将JOIN
表格
SELECT r.name as RegionName
, c.name as CityName
, s.name as SuburbName
FROM Region r
INNER JOIN City c
ON r.id = c.region_id
INNER JOIN Suburb s
ON c.id = s.city_id
答案 1 :(得分:0)
我认为城市是地区的一部分,郊区是城市的一部分。如果是这样,您可能需要更多表格。
区域的一个表格,其中包含列ID(自动递增)的所有信息。
城市的一个表格,其中包含列ID(自动递增)的所有信息。
郊区的一个表格,其中包含列ID(自动递增)的所有信息。
然后,一张表将您的城市与您所在的地区联系起来。一列是ID(自动递增),一列是城市(城市表中的城市ID),一个是区域(区域ID中的区域ID)。这可以让您知道哪些城市属于哪个区域。
接下来,将您的郊区与城市相关联。一列是ID(自动增量),一列是区域(再次来自您的区域表),一列是郊区(来自您的郊区表)。这可以让您知道哪些郊区属于哪个城市。
通过此设置,您可以使用INNER JOIN来获取您的城市或郊区,您将拥有郊区数据和更一般类别的数据。
希望这有帮助,我一直在开发关系型Web应用程序很长一段时间,并且发现我的上述方法运行良好。