0

我正在开发具有以下标题的数据库:

地区 , 城市 , 郊区

每个标题将有大约 4000 行,所以我猜如果我使用单独的表而不是一个包含许多列的表会更好。

设置 Region id City id 和 Suburb id 的最佳方法是什么?当我想选择特定地区的信息时?

4

2 回答 2

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
于 2012-07-23T22:03:00.867 回答
0

我假设城市是地区的一部分,郊区是城市的一部分。如果是这样,您可能需要更多表。

您的区域的一个表,其中包含所有信息以及列 ID(自动递增)。

您的城市的一张表,其中包含所有信息以及列 ID(自动递增)。

一张表用于您的郊区,其中包含所有信息以及列 ID(自动递增)。

然后,一张表格将您的城市与您的地区联系起来。一列是 ID(自动增量),一列是城市(城市表中的城市 ID 所在的位置),一列是区域(区域表中的区域 ID 所在的位置)。这让您知道哪些城市属于哪个地区。

接下来,一张表将您的郊区与您的城市联系起来。一列是 ID(自动增量),一列是区域(再次来自您的区域表),一列是郊区(来自您的郊区表)。这让您知道哪些郊区属于哪些城市。

通过此设置,您可以使用 INNER JOIN 来获取您的城市或郊区,并且您将拥有郊区的数据和更一般类别的数据。

希望这会有所帮助,我已经开发了很长时间的关系 Web 应用程序,并且发现我上述的方法非常有效。

于 2012-07-23T22:02:36.030 回答