Добавление ограничения к двум столбцам
У меня есть таблица базы данных со столбцами "User","Role"
а также"Application"
, Мое требование состоит в том, что пользователь может иметь только одну роль, но он может принадлежать нескольким приложениям. Я хочу добавить это ограничение в виде ограничения, но я не могу его достичь.
Установка уникальных ограничений для "пользователя" и "роли" не поможет. Также установка уникального ограничения для всех 3 столбцов также не поможет.
Может кто-нибудь предложить, как установить ограничение здесь.
Edit1:
Ниже приводится ожидаемый результат:
User Role Application
U1 R1 A1
U1 R1 A2
U2 R2 A3
и так далее... что я хочу ограничить, так это то, что теперь, когда U1 сопоставлен с R1, U1 не должен быть сопоставлен с любой другой ролью.
1 ответ
Затем вам нужно изменить дизайн вашего стола и нормализовать его дальше. Если отношения между USER
а также ROLE
является 1-to-1
тогда есть таблица поиска для user_role_mapping
и создать другую таблицу для user_application_mapping
,
В идеале ваши две таблицы должны выглядеть так:
Create table user_role_map
(
user <datatype>,
role <datatype>
constraint user_pk primary key (user, role)
);
Create table user_application_map
(
user <datatype> NOT NULL,
applications <datatype> NOT NULL
);