0
我想設計一個Web應用程序的數據庫,用戶可以根據授予角色的權限訪問特定的選項卡。最佳用戶角色權限數據庫設計實踐?
我做了什麼至今我創建了兩個表USER_TABLE和USER_ROLES。
USER_TABLE有以下字段:
- ID(主鍵)
- USER_NAME
- 密碼
- FIRST_NAME
- 姓氏
- CREATED_DATE
- role_id_fk(外鍵) 個
USER_ROLES具有低於字段:
ID(主鍵)
ROLE_NAME(例如ADMIN,TAB1_USER,TAB2_USER)
CREATED_DATE
這裏,有用戶ROLE_NAME 「ADMIN」 可以看到所有的標籤,其他用戶只能訪問特定的標籤。
我的問題是我需要創建一個表USER_PERMISSIONS具有USER_ROLES表下面的字段外鍵:
- ID(主鍵)
- permission_type(ALL,TAB1,TAB2 ....)
或者我應該在我的代碼級別管理?這兩種方法的缺點和優點是什麼?
這取決於您的要求。如果您只想實現在運行時無法更改的靜態權限,則將所有應用程序的函數綁定到代碼中的角色。優點 - 易於實現,缺點 - 每次更改特權都需要更改代碼。如果您想要動態權限(可以在運行時更改)(例如,管理員可以直接在應用程序中編輯各個角色的權限),那麼您需要USER_PERMISSIONS表,並將代碼中的每個應用程序函數綁定到某個權限而不是角色。 – krokodilko