0

次の見出しを持つデータベースを開発中です。

地域、都市、郊外

各見出しには約 4000 行あるため、多くの列を持つ 1 つのテーブルではなく、別のテーブルを使用する方がよいと思います。

Region id City id と Suburb id を設定する最良の方法は何ですか? 特定の地域の情報を選択したい場合はどうすればよいですか?

4

2 に答える 2

1

これらのテーブルをモデル化する方法はいくつかありますが、設定する方法の 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

都市は地域の一部であり、郊外は都市の一部であると想定しています。その場合は、さらにテーブルが必要になる場合があります。

地域の 1 つのテーブルには、列 ID (自動インクリメント) を含むすべての情報が含まれています。

都市の 1 つのテーブルには、列 ID (自動インクリメント) を持つ都市のすべての情報が含まれています。

suburbs用の 1 つのテーブル。これには、列 ID (自動インクリメント) を含むすべての情報が含まれています。

そして、都市と地域を関連付ける 1 つのテーブル。1 つの列は ID (自動インクリメント)、1 つは都市 (都市テーブルの都市 ID が入る場所)、もう 1 つは地域 (地域テーブルの地域 ID が入る場所) です。これにより、どの都市がどの地域に属しているかがわかります。

次に、郊外を都市に関連付ける 1 つのテーブル。1 つの列は ID (自動インクリメント)、1 つは地域 (再び地域テーブルから)、もう 1 つは郊外 (郊外テーブルから) です。これにより、どの郊外がどの都市に属しているかがわかります。

このセットアップでは、INNER JOIN を使用して都市または郊外を取得でき、郊外のデータとより一般的なカテゴリのデータの両方を取得できます。

私は長い間リレーショナル Web アプリケーションを開発してきましたが、前述の方法が非常にうまく機能することがわかりました。

于 2012-07-23T22:02:36.030 に答える