0
私は3つのテーブルを持つデータベースを持っています。 item、item_unit、およびunitsを指定します。アイテムは7つのユニットのうちの1つに属します。これらのテーブルの作成は、次のとおりです。SQL Server 2012:where句を使用してレコードの重複を防ぐ方法
CREATE TABLE items
(
itemID int PRIMARY KEY,
itemDefinition varchar (150)
)
CREATE TABLE units
(
unitID int PRIMARY KEY,
unitName varchar(25)
)
CREATE item_Units
(
itemID int FOREIGN KEY REFERENCES items(itemID),
unitID int FOREIGN KEY REFERENCES units(unitID),
PRIMARY KEY(itemID, unitID)
)
シナリオがあり、同じユニットに属しているアイテムは、同じ定義を持つことはできません。重複を制限するためにテーブルにインデックスと制約を作成することは可能ですが、このシナリオに関連してこれを行うことは可能ですか?
アイテム定義をアイテムテーブルのレベルで保存できませんでした。そのユニークな定義は、「Items」と「Units」の関係に基づいています。それは2つを関連付けるテーブルに格納しなければならず、ユニークなキーの一部になります。あなたは2つのテーブルを持つこともできます。 'Items'は' Units 'に外部キーを持たなければならず、リンクテーブルは不要です。それがうまくいくはずです。 – BenM