我在开发具有以下标题的数据库的过程:数据库结构查询
地区,城市,郊区
每个标题将有大约4000行,所以我猜,如果我会更好使用一个单独的表格而不是一个有许多列的表格。
什么是最好的方式来设置区域ID城市ID和郊区ID?为什么当我想选择特定区域信息?
我在开发具有以下标题的数据库的过程:数据库结构查询
地区,城市,郊区
每个标题将有大约4000行,所以我猜,如果我会更好使用一个单独的表格而不是一个有许多列的表格。
什么是最好的方式来设置区域ID城市ID和郊区ID?为什么当我想选择特定区域信息?
虽然有几种方法,你可以将这些表格模型,这里是设置了一个办法:
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
我假设城市是地区的一部分,郊区是城市的一部分。如果是这样,你可能需要更多的表格。
您的区域的一个表格,其中包含列ID(自动递增)的所有信息。
为您的城市提供了一个表格,其中包含列ID(自动递增)的所有信息。
您的郊区的一个表格,其中包含列ID(自动递增)的所有信息。
然后,将您的城市与您的地区相关联的一张表。其中一列是ID(自动增加),一个是城市(您的城市表中的城市ID将从该城市转到该城市),另一列是区域(您的区域表中的区域ID将从该城市转到该城市)。这让你知道哪些城市属于哪个地区。
接下来,将您的郊区与您的城市相关联的一张表。一列是ID(自动增量),一列是区域(再次来自您的区域表),另一列是郊区(来自您的郊区表)。这让你知道哪些郊区属于哪个城市。
通过此设置,您可以使用INNER JOIN获取您的城市或郊区,并且您将拥有郊区数据和更一般类别的数据。
希望这会有所帮助,我一直在开发关系Web应用很长一段时间,并且发现我的上述方法工作得很好。
如何地区,城市和郊区相互关联? – Taryn 2012-07-23 21:56:53
@bluefeet一个地区是奥塔哥南地区,有一个叫做\t的城市,但尼丁拥有一个名为Pine Hill的郊区 – 2012-07-23 21:59:54