Tôi có một bảng MySQL, users
, với các cột sau:Enum datatype so với bảng dữ liệu trong MySQL?
- user_id (PK)
- tên
- mật khẩu
Để quản lý một hệ thống vai trò, sẽ có một nhược điểm cho một trong các tùy chọn sau đây?
Lựa chọn 1:
Tạo một bảng thứ hai được gọi là roles
với ba cột: role_id
(Khóa chính), name
và description
, sau đó kết hợp users.user_id
với roles.role_id
như phím nước ngoài trong một bảng thứ ba gọi là users_roles
?
Hoặc ...
Phương án 2:
Tạo một bảng thứ hai được gọi là roles
với hai cột: user_id
(key Ngoại từ users.user_id
) và role
(ENUM)? Cột kiểu dữ liệu ENUM sẽ cho phép một danh sách ngắn các vai trò cho phép được chèn vào dưới dạng các giá trị.
Tôi chưa bao giờ sử dụng kiểu dữ liệu ENUM trong MySQL trước đây, vì vậy tôi chỉ tò mò, vì tùy chọn 2 có nghĩa là một bảng ít hơn. Tôi hy vọng rằng có ý nghĩa, đây là lần đầu tiên tôi đã cố gắng để mô tả các bảng MySQL trong một diễn đàn.
Cảm ơn! Bạn đã làm một công việc tuyệt vời để giải thích điều này. –