0
我有一个包含三个表的数据库; item,item_unit和单位。物品属于7个单位之一。创建这些表的方法如下: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'基表级别。这个唯一的定义是基于'Items'和'Units'之间的关系。它必须存储在与两者相关的桌子上,并且成为唯一键的一部分。你可能只有两张桌子。 'Items'应该具有'Units'的外键,并且链接表是不必要的。很确定这应该工作。 – BenM