我正在开发具有以下标题的数据库:
地区 , 城市 , 郊区
每个标题将有大约 4000 行,所以我猜如果我使用单独的表而不是一个包含许多列的表会更好。
设置 Region id City id 和 Suburb id 的最佳方法是什么?当我想选择特定地区的信息时?
我正在开发具有以下标题的数据库:
地区 , 城市 , 郊区
每个标题将有大约 4000 行,所以我猜如果我使用单独的表而不是一个包含许多列的表会更好。
设置 Region id City id 和 Suburb 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 应用程序,并且发现我上述的方法非常有效。