SQL中的复合键是一对多,而不是多对一,对吗?

SQL中的复合键是一对多,而不是多对一,对吗?,sql,sql-server,primary-key,one-to-many,composite-key,Sql,Sql Server,Primary Key,One To Many,Composite Key,如果我使用复合键(一对多关系)创建一个表。我如何确保一对多关系是片面的?我的意思是A和B是复合键;A可以有多个B,但B不能有多个A 编辑:将数据类型从数字更改为整数 例如: 功能需求-一个成员可以有多个任务订单。但不能将一个任务顺序分配给多个成员 我如何确定?起初,我考虑使用复合键。还有其他选择吗?或者使用复合键可以吗?因为B不能有多个a,这使得B是唯一的B将是您的主键 create table voting ( TaskOrder int , MemberID int , pr

如果我使用复合键(一对多关系)创建一个表。我如何确保一对多关系是片面的?我的意思是A和B是复合键;A可以有多个B,但B不能有多个A

编辑:将数据类型从数字更改为整数

例如:

功能需求-一个成员可以有多个任务订单。但不能将一个任务顺序分配给多个成员


我如何确定?起初,我考虑使用复合键。还有其他选择吗?或者使用复合键可以吗?

因为
B
不能有多个
a
,这使得
B
是唯一的<代码>B将是您的主键

create table voting (
    TaskOrder int
  , MemberID int
  , primary key (TaskOrder)
 );

除非您有理由使用未指定的
数值
,否则只需使用
int
,因为
B
不能有多个
A
,这使得
B
唯一<代码>B将是您的主键

create table voting (
    TaskOrder int
  , MemberID int
  , primary key (TaskOrder)
 );

除非您有理由使用未指定的
数值
,否则只需使用
int

一个任务顺序不能有多个任务memberIDs@shockwave我的回答反映了这一点,是的。这里有一个rextester演示来说明:一个taskOrder不能有多个memberIDs@shockwave我的回答反映了这一点,是的。下面是一个rextester演示来说明: