Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Thực hiện các quyền dựa trên danh tiếng

user_table
id, etc

permission table
id, user_id, permission_type

với cấu trúc này, mỗi người dùng có thể có một số loại quyền được liên kết với tài khoản của họ, một loại cho mỗi bộ tính năng mà họ có thể có quyền truy cập vào. bạn sẽ không bao giờ cần thay đổi cấu trúc bảng để thêm các loại quyền mới.

để tiến thêm một bước nữa, bạn có thể đặt mỗi loại quyền là một số nhị phân. theo cách này, bạn có thể làm cho một tập hợp các quyền được biểu diễn bằng một số nguyên bằng cách sử dụng các toán tử bitwise.

chẳng hạn nếu bạn có các hằng số

PERMISSION_CHANGE_PERMISSIONS = bindec('001') = 1
PERMISSION_MAKE_CHANGES = bindec('010') = 2
PERMISSION_ACCEPT_CHANGES = bindec('100') = 4

bạn có thể kết hợp các giá trị này thành một số nguyên bằng cách sử dụng toán tử bitwise "|"

(PERMISSION_CHANGE_PERMISSIONS | PERMISSION_MAKE_CHANGES) = bindec('011') = 3 = $users_combined_permissions

sau đó để kiểm tra xem họ có quyền cụ thể hay không, hãy sử dụng toán tử bitwise "&"

($users_combined_permissions & PERMISSION_MAKE_CHANGES) = true

nếu bạn đã làm điều đó, bạn sẽ chỉ cần một bản ghi db cho mỗi bộ quyền.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kết nối với Nguồn dữ liệu MySQL trong Visual Studio

  2. MySQL THAM GIA với điều kiện IF

  3. Sự cố PHP OOP với cơ sở dữ liệu

  4. MySQL:làm thế nào để có được sự khác biệt giữa hai dấu thời gian trong vài giây

  5. sử dụng tham gia ở đâu và bên trong trong mysql