向多个表添加约束
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)
如果我有以下 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)