0

しばらく探していたのですが、十分に答えられなかった質問があります。

SQL クラス用に 2008 SQL Server にレコードを挿入していますが、データを 3 番目の形式に正規化する必要がありました。私はこれを正しく行ったと思います。私に与えられた例は、レコードを独自のアトミック行に分割することでした(他の要件の中でも)。これにより、同じ OrderID (主キー) を持つ複数の行が生成され、注文の一部が上記の行に分割されました。

例:

OrderID ItemNumber Price  QTY
101     1          $1.00  5
101     2          $9.00  4
101     3          $5.00  3

ただし、PK (OrderID) が何度も複製された状態でこれらの行を挿入するにはどうすればよいですか? 私はすでに一度試しましたが、複製されていない最初のインスタンス以外のすべての INSERT INTO を拒否します (PK 制約エラーが発生します)。これがばかげた質問である場合は申し訳ありませんが、理解しようと努力しています。上に投稿した小さな例は、私のインストラクターが望んでいた方法とまったく同じです。

4

1 に答える 1

0

授業で学んだことがあるかどうかにかかわらず、主キーの制約の 1 つは、一意でなければならないということです。

より論理的な観点から言えば、基本的に、主キーは各行がビジネス ユーザーに何を表すかを定義する必要があります。この場合、各行は注文ではなくアイテムを表します。各アイテムは、注文番号とその注文のアイテム番号によって定義されます。

主キーは、OrderID と ItemNumber の複合である必要があります。

于 2013-03-04T17:41:22.710 に答える