2009-02-26 8 views
0

私は2つのテーブルがあるとします。マネージャ、Player.Thisは複数のプレイヤーが1人のマネージャーのみでプレイでき、マネージャーが複数(11人)のプレイヤーを管理するサッカーチーム用です。Sql Serverの管理スタジオインターフェイスの関係を設計するためのクエリ

Sql Serverでリレーションシップを設計するとき、ポップアップウィンドウにリレーションシップのプロパティが表示されたら、テーブルのどちら側に問題がありますか?

つまり、PlayerからManagerへ、またはManagerからManagerへのキーの接続に違いがありますか?

また、関係を1:nとして指定する方法、または1:nまたは1:1として自動的に決定する方法はありますか。

ありがとうございました

答えて

0

違いがあります。 プレーヤーは、マネージャの主キー(または別の一意のキー)を参照する外部キー制約を必要とします。

  • ソーステーブル:外部キー制約
  • ターゲットテーブル:主/一意キー制約

主キー制約を使用すると、外部キー(制約)を作成することができます前に、場所にする必要があります。自動的に1:n(または、外部キーがヌル可能な場合は0:n、つまりマネージャーのないプレイヤーが存在します)。

+0

1:1の関係を設計するには、マネージャーが2人のプレイヤーに所属できないという単純な制約を追加しますか? – dotnetdev

+0

他の回答へのコメントを参照してください。 1:1ではなく、0:nまたは1:nの状況があります。マネージャーは0人または1人以上のプレーヤーを持つことができます。 1:1の場合は、マネージャーが1人しかなく、プレイヤーが1人しかいない場合です。これは非常にまれで、そのプレーヤーをマネージャーテーブル全体に保存するだけです。 – cdonner

1

あなたはManagerPlayerを接続し、UNIQUE CONSTRAINTはあなたのケースではありませんPlayer表にmanager_idにそこにある場合を除きFOREIGN KEY Player (manager_id) REFERENCES Manager (id)

を作成した関係が1:nになります。

通常、1つのテーブルに1:1の関係が格納されます。

+0

だから私はテーブルを1と仮定:私は、右から接続する主キーテーブルになりますか? – dotnetdev

+0

1人のマネージャ(参照先)にはN人のプレイヤーを置くことができます(これは参照元です) – Quassnoi

関連する問題