2016-01-16 5 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) 
Смежные вопросы