基于另一个表中的SAME主键创建复合外键

时间:2015-04-22 16:55:14

标签: sql sql-server-2012 foreign-keys primary-key

首先,我甚至不确定我的标题是否正确,所以让我详细解释一下我究竟想做什么。

我试图在SQL Server中将2个表连接在一起(outfits和Items);主键分别是 Outfit_ID Item_ID (自动递增int)。

服装由多种物品组成;因此,我希望主键( Outfits_ID )为( Item_ID,Item_ID,Item_ID )或构成装备所需的物品数量。

这是否可能,如果是这样,我该怎么办呢?

2 个答案:

答案 0 :(得分:0)

对于复合键,您需要另一个表Outfit_Item,它将具有Outfit_ID和Item_ID。您可以为每个添加尽可能多的记录。服装1可以有多个项目,一个项目可以有多个服装。您可以使用关系限制这些。

答案 1 :(得分:0)

如果项目可以在多个服装中,那么您可以通过在两个表之间添加一个表来设置多对多的关系:

装备---> OutfitItem ---->项目

每个OutfitItem记录都包含一个包含一个outfit_id和一个Item_id的复合键。

Outfit与OutfitItem有一对多的关系 Item与OutfitItem有一对多的关系。

这将允许每件衣服多件物品和单件物品的多件衣服。