Tôi có 4 loại người dùng và mỗi người đều có dữ liệu cụ thể, nhưng họ cũng chia sẻ dữ liệu commun, như username
, password
..thiết kế cơ sở dữ liệu quan hệ nhiều kiểu sử dụng
Suy nghĩ đầu tiên của tôi là để tạo ra một users
bảng chính với user_type
cột. Sau đó, khi truy vấn dữ liệu người dùng, tôi chỉ có thể chọn user_type
và sau đó tùy thuộc vào việc output
chạy truy vấn khác để lấy dữ liệu cụ thể "loại người dùng". Tôi không thích điều này vì tôi ước tôi có thể lấy tất cả dữ liệu liên quan đến người dùng bằng một truy vấn và lý tưởng sử dụng Khóa ngoại.
Ý tưởng thứ hai là không có cột user_type
trong bảng users
và thay vào đó sử dụng khóa ngoài từ bảng loại người dùng cụ thể sẽ trỏ đến một hàng bảng chính users
. Tôi thích rằng tốt hơn một chút mặc dù tôi đoán tôi sẽ phải chạy N truy vấn, trong đó N là số lượng người dùng loại mỗi khi tôi cần phải lấy dữ liệu người dùng.
Có tùy chọn nào khác không? Điều gì sẽ là thực hành tốt trong trường hợp như vậy?
Rất cám ơn
Nếu tôi hiểu bạn, bạn chỉ cần sử dụng một điều khoản JOIN trong câu lệnh SQL của bạn. Một cái gì đó giống như 'SELECT * FROM người dùng U LEFT JOIN user_details D ON U.id = D.user_id WHERE U.id =?' –
Người dùng có thể có nhiều hơn một loại tại một thời điểm không? –
@Catcall không có trong trường hợp này một người dùng chỉ có thể có một loại, mặc dù tôi tò mò về khả năng trong trường hợp là gì – silkAdmin