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

时间:2017-06-06 17:18:58

标签: sql sql-server primary-key one-to-many composite-key

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

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

例如:

CREATE TABLE voting (
TaskOrder int,
MemberID int,
PRIMARY KEY (TaskOrder , MemberID)
);

功能要求 - 一个成员可以有多个任务订单。但是,无法将一个任务订单分配给多个成员。

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

1 个答案:

答案 0 :(得分:5)

由于B不能有多个A,因此B是唯一的。 B将是您的主要关键。

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

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