Добавление ограничения к двум столбцам

У меня есть таблица базы данных со столбцами "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
   );
Другие вопросы по тегам