본문 바로가기

컴퓨터/MariaDB

MairaDB 테이블 구조

users
----------
id | name | password
----------
1  | John | 1234
2  | Jane | abcd
3  | Mike | efgh

roles
----------
id | name
----------
1  | admin
2  | manager
3  | employee

permissions
---------------------
id | name          | menu_id
---------------------
1  | view_reports | 1
2  | edit_users   | 2
3  | manage_tasks | 3

menus
---------------------
id | name        | parent_id
---------------------
1  | Reports     | null
2  | User        | null
3  | Manage Task | null
4  | Sales       | 1
5  | Marketing   | 1
6  | Add User    | 2
7  | Remove User | 2

user_role
----------
user_id | role_id
----------
1       | 1
2       | 2
3       | 3

role_permission
---------------------
role_id | permission_id
---------------------
1       | 1
2       | 2
3       | 3

로그인 후 해당 사용자에게 맞는 메뉴를 호출하기 위해서는 다음과 같은 테이블을 조회해야 합니다.

User 테이블: 로그인한 사용자의 정보를 조회합니다.

User_Roles 테이블: 로그인한 사용자의 역할(role) 정보를 조회합니다.

Role_Permissions 테이블: 로그인한 사용자의 역할(role)에 대한 권한(permission) 정보를 조회합니다.

Menu_Permissions 테이블: 로그인한 사용자의 권한(permission)에 대한 메뉴(menu) 정보를 조회합니다.

조회 과정은 다음과 같습니다.

User 테이블에서 로그인한 사용자의 정보를 조회합니다. 이때, 사용자 아이디(user_id)를 기준으로 조회합니다.

User_Roles 테이블에서 로그인한 사용자의 역할(role) 정보를 조회합니다. 이때, user_id를 기준으로 조회합니다.

Role_Permissions 테이블에서 로그인한 사용자의 역할(role)에 대한 권한(permission) 정보를 조회합니다. 이때, role_id를 기준으로 조회합니다.

Menu_Permissions 테이블에서 로그인한 사용자의 권한(permission)에 대한 메뉴(menu) 정보를 조회합니다. 이때, permission_id를 기준으로 조회합니다.

위의 과정을 거치면, 로그인한 사용자에게 허용된 메뉴 항목을 조회할 수 있습니다. 이후, 해당 메뉴 항목을 사용자에게 표시하면 됩니다.