2017-06-06 98 views
1

如果我使用組合鍵創建表(一對多關係)。我如何確保一對多關係是單方面的?我的意思是A和B是複合鍵; A可以有多個B的,但是B不能有多個A的SQL中的複合鍵是一對多而不是多對一的權利?

編輯:改變從數字數據類型爲int

如:

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

功能需求 - 一個會員可以有多個任務命令。但是一個任務訂單不能分配給多個成員。

我該如何確定?起初,我想過使用複合鍵。還有其他的選擇嗎?或使用複合鍵是好的?

回答

5

由於B不能有多個A,這使得B是唯一的。 B將是您的主要關鍵。

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

除非你有一些理由使用未指定numeric,只需使用int

+0

一個taskOrder不能有多個memberIDs – shockwave

+0

@shockwave這就是我的答案反映,是的。這裏是一個rextester演示來說明:http://rextester.com/GJRV65698 – SqlZim

相關問題