从两个外键创建一个唯一参数

时间:2015-08-23 17:56:06

标签: sql

我创建了一个有两个外键的表

create table RezultatiTesta 
(
    RezultatiID int identity(1,1) not null primary key,
    Polozio bit not null,
    OsvojeniBodovi decimal not null,
    Napomena text,
    KandidatiID int,
    TestoviID int,

    Foreign key (KandidatiID) references Kandidati(KandidatiID),
    Foreign key (TestoviID) references Testovi(TestoviID)
)

我想让它让用户有机会输入更多的组合,比如一个候选人可以做更多的测试,一个测试可以由更多的候选人写,但他们不能做同样的测试两次,所以如果我插入{{ 1}},1 11 2它应该可以工作但是如果我重复1 3它应该写错误但我不能让它像那样工作。我不知道如何让两个外键作为一个独特的参数,我希望你理解我想说的。

1 个答案:

答案 0 :(得分:1)

您只想在两列上使用唯一约束:

create table RezultatiTesta (
    RezultatiID int identity(1,1) not null primary key,
    Polozio bit not null,
    OsvojeniBodovi decimal not null,
    Napomena text,
    KandidatiID int,
    TestoviID int,
    Foreign key (KandidatiID) references Kandidati(KandidatiID),
    Foreign key (TestoviID) references Testovi(TestoviID),
    Constraint unq_KandidtId_TestoviId unique(KandidatiID, TestoviID)
)