18

私は2つのテーブルを持っています:

1) エリア 2) 地図

各エリアには少なくとも 1 つのマップが必要ですが、複数のマップを持つこともできます。

1 つのマップは 1 つのエリアにのみ属することができます。

これをMySQLで構築する方法は?

4

3 に答える 3

9

エリアの主キーを参照する外部キーをマップに追加します。これにより、マップとエリアの間に 1 対多の関係が適用されます。

エリアごとに最低 1 つのマップを適用すること (必要な場合) については、こちらの投稿にいくつかのアイデアがあります。より簡単な解決策の 1 つは、マップのある領域のみを表示するビューを作成することです。

CREATE VIEW viewAreas AS
SELECT * 
FROM Areas, Maps
WHERE Areas.ID = Maps.AreaID;

このようにして、エリアを作成し、そこにマップを追加できます。マップの外部キーを NOT NULL にすることもできるため、マップには常に領域が必要です。

于 2013-06-11T13:21:50.857 に答える
2

Map と Area のそれぞれのテーブル。Map の外部キーは Area にリンクしています。

于 2013-06-11T13:05:39.127 に答える