Tôi đang tạo một hệ thống menu trong PHP và MySQL. Tôi sẽ có một vài menu khác nhau và mỗi menu sẽ có một bộ các mục menu được kết nối với nó.
Trên trang web, tôi cũng có quyền người dùng khác nhau, một số người dùng có thể thấy tất cả các mục menu và một số mục bị ẩn khỏi một số người dùng. Tôi tò mò về cách tôi có thể xử lý các quyền theo cách rõ ràng sẽ cho phép dễ dàng thêm nhiều loại người dùng trong tương lai.
Những gì tôi có cho đến nay là một cái gì đó như thế này:
-------------------
|Menus
-------------------
|id| |display name|
-------------------
----------------------------------------------------------
|Menu items
----------------------------------------------------------
|id| |menu_id| |label| |link| |parent| |sort| |permission|
----------------------------------------------------------
Tôi nghĩ rằng permission
cột có thể là một chuỗi được phân tách bằng dấu phẩy mà tôi có thể khớp với id quyền của người dùng hiện tại. Nó cũng có thể là một tham chiếu đến một số bảng khác xác định tất cả các kết hợp có thể có của các quyền hiện có.
Một giải pháp cũng có thể đơn giản là lưu trữ nhiều mục menu trong đó sự khác biệt duy nhất là sự cho phép mặc dù điều này sẽ dẫn đến lưu trữ trùng lặp và có lẽ là một vấn đề khó khăn khi quản trị.
Tôi rất muốn nghe một số suy nghĩ về cách cấu trúc này và những gì có thể được coi là sạch sẽ, năng động và nhảm nhí.
Cảm ơn.