Я создаю модель для RBAC на сервере sql. У меня есть таблица для разрешений и другая для ролей. Мое сомнение в том, как я могу сделать роль ключом с дублирующимися значениями.sql server, Как создать ключ с дублирующимися значениями
Это фрагмент:
CREATE TABLE permissions (permission int NOT NULL, name varchar(50) NOT NULL, PRIMARY KEY (permission))
INSERT INTO permissions (permission, name) VALUES (1, 'createUser')
INSERT INTO permissions (permission, name) VALUES (2, 'deleteUser')
INSERT INTO permissions (permission, name) VALUES (4, 'editUserInfo')
INSERT INTO permissions (permission, name) VALUES (8, 'grantPermissions')
CREATE TABLE roles (role varchar(50) NOT NULL, permission int NOT NULL, FOREIGN KEY (permission) REFERENCES permissions(permission))
INSERT INTO roles (role, permission) VALUES ('admin', 1)
INSERT INTO roles (role, permission) VALUES ('admin', 2)
INSERT INTO roles (role, permission) VALUES ('admin', 4)
INSERT INTO roles (role, permission) VALUES ('admin', 8)
Вы ищете композитный первичный ключ? 'первичный ключ (роль, разрешение)' –
Я пробовал это. Результат был не тем, что мне нужно. Благодарю. – antonio
@antonio затем объясните, что на самом деле вам нужно. Сделать «разрешение» Ключа кажется ужасной идеей. Ключ должен быть уникальным идентификатором. Однако вы можете создать индекс в поле «разрешение» для производительности. –