Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cơ sở dữ liệu quan hệ thiết kế nhiều kiểu người dùng

Trường hợp của bạn trông giống như một trường hợp của lớp / lớp con.

Có hai cách cổ điển để thiết kế bảng SQL để xử lý các lớp con. Mỗi thứ đều có ưu điểm và nhược điểm.

Một cách được gọi là "Kế thừa Bảng Đơn". Trong thiết kế này chỉ có một bảng cho tất cả các đối tượng người dùng. Nếu một cột nhất định không liên quan đến một hàng nhất định, thì phần giao nhau là NULL. Một cột có thể được thêm vào để chỉ ra loại người dùng.

Một cách khác được gọi là "Kế thừa Bảng Lớp". Điều này giống như câu trả lời mà Nanego đã đưa ra, với một vài thay đổi nhỏ. Có một bảng cho người dùng, với tất cả dữ liệu chung và một trường id. Có một bảng cho mỗi lớp con, với dữ liệu liên quan đến lớp con đó. Trường id thường được thiết lập dưới dạng bản sao của trường id trong hàng khớp trở lại trong bảng người dùng. Bằng cách này, khóa lớp con có thể làm nhiệm vụ kép, hoạt động như một khóa chính và khóa ngoại tham chiếu đến bảng người dùng. Kỹ thuật cuối cùng này được gọi là "Khóa chính dùng chung". Nó yêu cầu một chút lập trình tại thời điểm chèn, nhưng nó rất đáng giá. Nó thực thi tính chất 1-1 của mối quan hệ và tăng tốc các phép nối cần thiết.

Bạn có thể tra cứu cả ba thiết kế này dưới dạng thẻ trong SO hoặc dưới dạng các bài báo trên web.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chương trình C ++ giao tiếp với Cơ sở dữ liệu MySQL

  2. EF:Sử dụng không chính xác chỉ mục không gian / toàn văn bản / băm và thứ tự chỉ mục rõ ràng

  3. lỗi nghiêm trọng gặp phải trong quá trình thực thi lệnh trong khi cập nhật

  4. MySQL:DATE_ADD

  5. Làm thế nào để kích hoạt mysqlnd cho php?