如何设计具有按角色映射的用户和授权实体的表?

时间:2019-06-06 15:03:21

标签: sql hibernate foreign-keys roles authority

我的目的是与Hibernate建立OneToMany关系,并让一个用户获得权限。

但是我不确定桌子的设计。该关系应通过列角色映射,该角色既在用户中也不在机构中是唯一的。

例如:

用户

1 /用户1 / / ... / ROLE_USER

2 /用户2 / ... / ROLE_USER

3 /用户3 / ... / ROLE_ADMIN

当局

1 / WRITE_ACCESS / ROLE_USER

2 / READ_ACCESS / ROLE_USER

3 / UPDATE_ACCESS / ROLE_USER

4 / WRITE_ACCESS / ROLE_MODERATOR

问题:“角色”列在两侧都不唯一。

我该如何处理?

我有2个表“ users”和“ authorities”。

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)
);

0 个答案:

没有答案