Tôi đang phát triển một ứng dụng cho công ty của chúng tôi và cuối cùng sẽ có nhiều cách hạn chế người dùng đối với các phần/mô-đun cụ thể. Mặc dù ứng dụng vẫn còn nhỏ, tôi muốn chuyển sang một phương pháp lưu trữ quyền mới, khi ứng dụng phát triển, sẽ vẫn dễ duy trì và truy vấn.Lưu trữ các quyền ứng dụng trong cơ sở dữ liệu
Hiện tại trong cơ sở dữ liệu MySQL của chúng tôi, chúng tôi có một bảng được gọi là "người dùng" lưu trữ ID, tên người dùng và mật khẩu của người dùng. Trong một bảng riêng biệt gọi là "user_acl" như sau:
user_acl_id
acl_root
acl_news_read
acl_news_write
acl_news_modify
acl_reports_read
acl_reports_write
acl_reports_modify
acl_users_read
acl_users_write
acl_users_modify
Chúng tôi chỉ có 3 module vào phút, nhưng theo thời gian hơn sẽ được tạo ra và cho phép đối với từng sẽ cần phải được thêm vào.
Thay vì tạo cột cho mỗi quyền, có cách nào khác hoặc lưu trữ thông tin này không?
Cách thêm thông tin bổ sung về vai trò như quản trị viên công khai, v.v.? ví dụ quản trị viên có một số điều thêm để thêm như tên công ty .. và người dùng không có trường này? – james
Tôi sẽ lưu trữ thông tin trong thực thể liên quan, bạn có thể thêm cột bổ sung vào bảng, nếu bạn muốn thêm thông tin cho vai trò thì bạn có thể thêm cột bổ sung trong bảng vai trò, tương tự cho bảng người dùng –
nếu tôi có bảng người dùng với tên người dùng và mật khẩu của trường. Đây là thông tin chung cho tất cả người dùng. và tôi có bảng thành viên với một số lĩnh vực phụ như tên công ty, địa chỉ vv .. cũng như tôi có admin với một số thông tin hơn .. tôi cần phải sử dụng supertype/subtype quan hệ cho người dùng với người quản trị memebers? – james