Answers:
我仍然不确定为什么不参考http://en.wikipedia.org/wiki/Compound_key。它非常清楚地指出(并且是正确的):
在数据库设计中,复合键是由2个或更多可唯一标识实体出现的属性组成的键。组成复合键的每个属性本身就是一个简单键。
这通常与组合键相混淆,即使组合键也是由唯一标识一个实体出现的2个或更多属性组成的键,组成组合键的至少一个属性本身也不是简单的键。
复合键由可能是也可能不是外键的元素组成。示例:在交易明细表中,键为(TransactionId,ItemNumber)。交易明细是交易的子实体。TransactionId是一个外键,引用事务表。ItemNumber本身不是键。它仅在单个事务的上下文中唯一地标识项目。
复合键是一个键,其中键的任何部分都是外键。示例:在酒店预订系统中,预订具有复合键(GuestId,HotelId,ArrivalDate)。GuestId标识来宾,并引用来宾表。HotelId标识酒店,并引用酒店表。ArrivalDate标识日期。它可能引用或可能没有Dates表,但是无论哪种方式它都标识一个实体(一个Date)。
还需要注意的是这个事实:简单键是由一列组成的键,而复合键是由两列或更多列组成的。
在英语中,它是“复合键”。例如,看一下MSDN网站(任何包含“ sql Composite Key”的搜索都可以)。
http://www.google.com/search?q=sql+composite+key+site:msdn.microsoft.com
假设问题与关系数据库有关,我在Wikipedia中搜索了“中立”定义:
复合键是由表中的两个或多个属性组成的键,这些属性(共同)唯一地标识一条记录
组合键由多个属性组成,以唯一地标识实体的出现。这与复合键的不同之处在于,构成键的一个或多个属性本身并不是简单的键。
例如,您有一个保存CD集合的数据库。实体之一称为轨道,它在CD上保存轨道的详细信息。它具有CD名称,曲目号的组合键。