Как спроектировать таблицы с сущностями User и Authority, сопоставленными с ролью? - PullRequest
0 голосов
/ 06 июня 2019

Моя цель - создать отношения OneToMany с Hibernate и получить одного пользователя с его полномочиями.

Но я не уверен в дизайне моих таблиц.Отношение должно быть сопоставлено ролью столбца, которая не уникальна ни для пользователей, ни для полномочий.

Например:

users

1 / user1 / ... / ROLE_USER

2 / user2 / ... / ROLE_USER

3 / user3 / ... / ROLE_ADMIN

полномочия

1 / WRITE_ACCESS / ROLE_USER

2 / READ_ACCESS / ROLE_USER

3 / UPDATE_ACCESS / ROLE_USER

4 / WRITE_ACCESS / ROLE_MODERATOR

Проблема: столбец "роль" не является уникальным для обеих сторон.

Как мне это сделать?

У меня есть 2 таблицы "пользователи" и "полномочия".

CREATE TABLE users (
    users_id            SERIAL PRIMARY KEY,
    users_username      VARCHAR (50) UNIQUE,
    users_email         VARCHAR (100) UNIQUE,
    users_password      VARCHAR(50),
    users_enabled       BOOLEAN,
    users_avatar        TEXT,
    users_date          TIMESTAMP,
    users_role          VARCHAR (100)
);

CREATE TABLE authorities (
    authorities_id          SERIAL PRIMARY KEY,
    authorities_authority   VARCHAR (50),
    authorities_role        VARCHAR (100),
    CONSTRAINT fk_authorities_role FOREIGN KEY (authorities_role)
    REFERENCES users(users_role)
);
...