1

SQL Server を使用して M:1 の関係を作成する必要がありますが、「多」側を表す列を外部キーにし、「一」側を表す列を主キーにする必要があるかどうか疑問に思っていました。目的は、「多」側を表す列を持つテーブルを使用して、「一」側を表す列を持つテーブルから情報を取得することです。このアイデアは合理的であり、うまくいくと思いますか?

4

1 に答える 1

2

「多」側を表す列を外部キーにし、「一」側を表す列を主キーにするべきかどうか疑問に思っていました。

多面を表す列は確かにテーブルの主キーであり、一面を表す列は別のテーブルの主キーでもあります。しかし、そのうちの1つに新しい列があり、相互に接続する外部キーです(この列は関係を多対1にする列であり、それはあなたが気にするべき列です)。

したがって、それらを 2 つのテーブルにする必要があります。次の多対一の例を考えてみましょう。

国と都市の関係: 1 つの国には多くの都市があります。

これは、次の 2 つのテーブルで表されます。

ここに画像の説明を入力

Countries:

  • CountryID主キー、
  • Name.

Cities:

  • CityID主キー1 ,
  • CountryId外部キー参照Countries(ID),
  • Name.

これが、次のように多対 1 の関係を作成する方法です。

  • CountryIDと列CityIDは、2 つのテーブルの主キーです。
  • CountryID一方を表す列は、多面(citiesテーブル)の外部キーです。それはあなたがすべき列です

1:都市を同時に複数の国に配置する場合を除き、主テーブルの代わりに複合キーを使用する必要があります。Cities

于 2012-11-22T13:09:32.100 に答える