2012-07-23 124 views
0

我在開發具有以下標題的數據庫的過程:數據庫結構查詢

地區,城市,郊區

每個標題將有大約4000行,所以我猜,如果我會更好使用一個單獨的表格而不是一個有許多列的表格。

什麼是最好的方式來設置區域ID城市ID和郊區ID?爲什麼當我想選擇特定區域信息?

+1

如何地區,城市和郊區相互關聯? – Taryn 2012-07-23 21:56:53

+0

@bluefeet一個地區是奧塔哥南地區,有一個叫做\t的城市,但尼丁擁有一個名爲Pine Hill的郊區 – 2012-07-23 21:59:54

回答

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 
0

我假設城市是地區的一部分,郊區是城市的一部分。如果是這樣,你可能需要更多的表格。

您的區域的一個表格,其中包含列ID(自動遞增)的所有信息。

爲您的城市提供了一個表格,其中包含列ID(自動遞增)的所有信息。

您的郊區的一個表格,其中包含列ID(自動遞增)的所有信息。

然後,將您的城市與您的地區相關聯的一張表。其中一列是ID(自動增加),一個是城市(您的城市表中的城市ID將從該城市轉到該城市),另一列是區域(您的區域表中的區域ID將從該城市轉到該城市)。這讓你知道哪些城市屬於哪個地區。

接下來,將您的郊區與您的城市相關聯的一張表。一列是ID(自動增量),一列是區域(再次來自您的區域表),另一列是郊區(來自您的郊區表)。這讓你知道哪些郊區屬於哪個城市。

通過此設置,您可以使用INNER JOIN獲取您的城市或郊區,並且您將擁有郊區數據和更一般類別的數據。

希望這會有所幫助,我一直在開發關係Web應用很長一段時間,並且發現我的上述方法工作得很好。