2016-01-16 52 views
2

如果我有以下表格:添加約束到多張表

User(user_id, name) 

Job(job_id,...) 

Authorised(job_id,user_id) //a job is authorised to be done by 1 or more users 

Work(user_id, job_id) //user working on a job 

的問題是:對於Work表我想有一個約束說,所有條目,用戶應被授權去努力工作。這是可以做到的(因爲它需要在Authroised表看呢?

回答

1

您可以輕鬆地使用外鍵關係做到這一點。

create unique index unq_authorised_job_user on Authorized(job_id, user_id); 

(如果該組合不是目前這是必要的主鍵或唯一)。

alter table Work add constraint foreign key (job_id, user_id) references Authorised(job_id, user_id)