55 lines
2.0 KiB
SQL
55 lines
2.0 KiB
SQL
|
|
-- V10: 메뉴 / 권한 / 역할
|
||
|
|
|
||
|
|
CREATE TABLE menu (
|
||
|
|
menu_id SERIAL PRIMARY KEY,
|
||
|
|
parent_menu_id BIGINT REFERENCES menu(menu_id),
|
||
|
|
menu_code VARCHAR(50) NOT NULL UNIQUE,
|
||
|
|
menu_name VARCHAR(100) NOT NULL,
|
||
|
|
menu_type VARCHAR(20) NOT NULL, -- DIRECTORY / PAGE / LINK
|
||
|
|
menu_path VARCHAR(200),
|
||
|
|
menu_icon VARCHAR(50),
|
||
|
|
component_path VARCHAR(200),
|
||
|
|
menu_level INT NOT NULL,
|
||
|
|
sort_order INT NOT NULL DEFAULT 0,
|
||
|
|
is_visible CHAR(1) NOT NULL DEFAULT 'Y',
|
||
|
|
is_active CHAR(1) NOT NULL DEFAULT 'Y',
|
||
|
|
description VARCHAR(300)
|
||
|
|
);
|
||
|
|
CREATE INDEX idx_menu_parent ON menu(parent_menu_id, sort_order);
|
||
|
|
|
||
|
|
CREATE TABLE menu_permission (
|
||
|
|
perm_id SERIAL PRIMARY KEY,
|
||
|
|
menu_id BIGINT NOT NULL REFERENCES menu(menu_id),
|
||
|
|
perm_code VARCHAR(20) NOT NULL, -- READ / CREATE / UPDATE / DELETE / APPROVE / EXPORT / PRINT
|
||
|
|
perm_name VARCHAR(50) NOT NULL,
|
||
|
|
sort_order INT NOT NULL DEFAULT 0,
|
||
|
|
UNIQUE (menu_id, perm_code)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE role (
|
||
|
|
role_id SERIAL PRIMARY KEY,
|
||
|
|
role_code VARCHAR(50) NOT NULL UNIQUE,
|
||
|
|
role_name VARCHAR(100) NOT NULL,
|
||
|
|
role_desc VARCHAR(300),
|
||
|
|
role_level INT NOT NULL DEFAULT 0,
|
||
|
|
is_system CHAR(1) NOT NULL DEFAULT 'N',
|
||
|
|
is_active CHAR(1) NOT NULL DEFAULT 'Y'
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE role_menu_permission (
|
||
|
|
rmp_id SERIAL PRIMARY KEY,
|
||
|
|
role_id BIGINT NOT NULL REFERENCES role(role_id),
|
||
|
|
menu_id BIGINT NOT NULL REFERENCES menu(menu_id),
|
||
|
|
perm_code VARCHAR(20) NOT NULL,
|
||
|
|
is_granted CHAR(1) NOT NULL DEFAULT 'Y',
|
||
|
|
UNIQUE (role_id, menu_id, perm_code)
|
||
|
|
);
|
||
|
|
CREATE INDEX idx_rmp_role ON role_menu_permission(role_id);
|
||
|
|
|
||
|
|
CREATE TABLE user_role (
|
||
|
|
ur_id SERIAL PRIMARY KEY,
|
||
|
|
user_id BIGINT NOT NULL REFERENCES users(user_id),
|
||
|
|
role_id BIGINT NOT NULL REFERENCES role(role_id),
|
||
|
|
UNIQUE (user_id, role_id)
|
||
|
|
);
|