2011-07-27 19 views
-1

したがって、3つの列を持つ表があります。列1に "A"がある場合は、列2は "B"に、列3は " C "TSQL列の制約

そうテーブルは...

ようになり、 "A" "B" "C"

"D" "E" "F"

"G"、" H "" I "

最初の列は他の2つの値を入れてください

私はちょうどこれをgoogleしたいと思いますが、私はそれが正確に何と呼ばれているのか分かりません。

本当に意味があると思います。私は、Microsoft SQL Management Studioを使用してい

EDIT

どうやら私の質問は非常に混乱しているので、私は試してみて、より多くを説明します: のは、私たちが動物と何のテーブルがあるとしましょう彼らは食べる。キリンは葉に

を食べる

私たちは、キリン、魚、ライオン

を持っている魚は水

ライオンは(のいずれかの不正確さを無視肉

を食べる食べますそれ)。

私がテーブルに新しいキリンを記入するとき、私は葉だけが他の列に入れられることを保証したいと思います。動物は割り当てられた食物だけを食べることができます。それをどうすれば保証できますか?

+0

同一の制約がある場合、3つの異なる列が必要なのはなぜですか? –

+0

申し訳ありませんが、同じデータであるとは限りません。それはすべて違うでしょう。それを編集してください。 – Johannes

+0

@Johannes:あなたがそこにいる間に、他に何が間違っているのかを考えてください...あなたは完全に質問を変えました。同様に、これはA-Xの範囲で常にchar(1)ですか?あなたはcolumn1だけを設定しますか? – gbn

答えて

4

制約は必要ありません。正しい設計です。食品と動物の順列があまりにも多くあります。新しい動物の場合は、制約を変更する必要があります。動物が複数の食べ物を食べるとどうなりますか?

私は、リンクテーブル食べ物や動物

  • 食品テーブル
  • リンク(多対多)テーブルは、各動物が食べることができるものがロードされている追加したいです。食糧情報は動物表の一部ではありません。