将约束添加到多个表

时间:2016-01-16 19:01:22

标签: sql postgresql constraints

如果我有以下表格:

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 个答案:

答案 0 :(得分: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)