 | ngoc_qua (Member) [Off]
 Exp: 13 |  1  Xu: 27805  ngoc |
chào mọi người, mình là thành viên mới của diễn đàn, mong được giúp đỡ thêm ạ.
Mình đang viết một cái phần mềm diễn đàn bằng php, nhưng ở đây mình chỉ nói đến phần hệ thống tài khoản người dùng thôi.
Thì một hôm trên server discord codemely có một bạn đăng thiết kế CSDL (mà mình thấy có từ ERD ấy) cho phần mềm quản lý cafe sách. Nhìn vào tự dưng nhớ về phiên bản trước của diễn đàn
Bạn ấy có một bảng user, các cột là thông tin người dùng, không có vấn đề gì, nhưng ở cuối lại có một cột "Enabled" bool. Bên cạnh thì có 2 bản, một bảng UserRole (id, user_id, role_id), và bảng Role (id, name -> tức là tên vai trò, kiểu như nhân viên, quản trị viên các thứ).
Trông y hệt của mình ngày trước: một bảng forum_user, một bảng forum_mods chứa id người dùng bên forum_user và một cột enum {ROOT, ADMIN, MOD}, v.v. Và đây là code cho phần đăng nhập, các bạn xem nó có buồn cười không
https://gitlab.com/hahahahacker2009/www/-/blob/master/html/login.php?ref_type=heads
Trên mã mới thì mình làm cách khác. Trong bảng forum_user có một cột là powerlevel signed int, mặc định là 0. Đấy là quyền hạn của mỗi người, Theo quy ước thì 0 là thành viên bình thường, 100 là admin, 50 là mod, -1 là chỉ đọc. Người nào có số cao hơn thì có tất cả quyền cho người có số thấp hơn, ví dụ admin có tất cả quyền của mod vậy. Mod được xóa bài, ẩn bài thì admin cũng được, nhưng chỉ admin mới được thay đổi quyền hạn người dùng, vô hiệu tài khoản người dùng, v.v. Trong đoạn mã xóa bài, ẩn bài thì chỉ việc so sánh powerlevel người dùng có lớn hơn hoặc bằng một con số nào không, nếu có thì mới cho phep thực hiện.
Vậy còn việc đặt tên admin, mod, v.v thì sao? Mình dự định sẽ đưa nó vào tập tin cấu hình. Cơ sở dữ liệu không phải chỗ để lưu trữ những thông tin ấy.
Còn về cái enabled thì có thể loại bỏ được, muốn vô hiệu tài khoản thì chỉ việc xóa mật khẩu hoặc đặt quyền thành -1 và không cho người dùng có powerlevel < 0 đăng nhập luôn
Không biết bạn ấy có nghe mình góp ý không, nhưng mình muốn nghe ý kiến của các bạn!
t/b: mình mới học cấp 3 thôi đừng chửi mình
).gif)
Edited:
ngoc_qua. 09:29 26/6/2025
 | ngatngay (FMod) [Off]
 Exp: 16 |  0  Xu: 13437  khóc chỉ làm rơi lệ |
cái diễn đàn này đang dùng cách 2, lưu vô file cấu hình.
Admin là số 9
---
còn nữa, cách nào cũng có ưu điểm, nhược điểm.
cách 1 thì "động" hơn tiện cho việc mở rộng, như muốn thêm vài cái chức vụ sau này thì rất dễ dàng.
cách 2 thì nhanh gọn lẹ, nếu ko ai yêu cầu thì làm cách 2 cho nhanh 👍
---
còn cột enabled dùng thể để ko thì xoá thôi 🤪
 | ngoc_qua (Member) [Off]
 Exp: 13 |  1  Xu: 27805  ngoc |
Cột enabled thừa ý, thay đc bằng những cách khác, powerlevel = -1 hoặc là xoá mật khẩu
 | ngatngay (FMod) [Off]
 Exp: 16 |  0  Xu: 13437  khóc chỉ làm rơi lệ |
Gửi từ: ngoc_qua
Cột enabled thừa ý, thay đc bằng những cách khác, powerlevel = -1 hoặc là xoá mật khẩu
không cần thiết phải tiết kiệm 1 cột như vậy, quá không cần thiết.
giả sử chỉ cấm tạm thời thì sao? role cũ, pass cũ đâu mà khôi phục
 | ngoc_qua (Member) [Off]
 Exp: 13 |  1  Xu: 27805  ngoc |
[color=aqua]hello[/color]