向多个表添加约束

Adding constraint to several tables

如果我有以下 tables:

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 table,我想有一个约束,说明对于所有条目,用户应该被授权从事该工作。这是否可行(因为它还需要查看 Authroised table?

您可以使用外键关系轻松地做到这一点。

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)