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

Tóm tắt lớp từ UML sang biểu đồ ER. Khả thi ? Làm sao?

Về cơ bản, có ba lựa chọn để chuyển tính tổng quát hóa thành mô hình cơ sở dữ liệu

1. Một bảng cho mỗi lớp bê tông

Tạo bảng Admin , TeacherStudent . Mỗi bảng này chứa các cột cho tất cả các thuộc tính và quan hệ của User

  • Chuyên nghiệp
    • Tất cả các trường của một lớp con cụ thể đều nằm trong cùng một bảng, vì vậy không cần kết hợp để lấy tất cả dữ liệu Sinh viên
    • Ràng buộc xác thực dữ liệu dễ dàng (chẳng hạn như các trường bắt buộc đối với Student )
  • Con
    • Tất cả các trường của User được sao chép trong mỗi bảng lớp con
    • Khóa ngoại cho User phải được chia thành ba trường FK. Một cho Admin , một cho Teacher và một cho Student .

2. Trên bàn cho toàn bộ tập hợp tổng quát

Trong trường hợp này, bạn chỉ có một lệnh gọi bảng User chứa tất cả các trường của User + tất cả các trường của tất cả các lớp con của User

  • Chuyên nghiệp
    • Tất cả các trường nằm trong cùng một bảng, vì vậy không cần kết hợp để lấy tất cả User dữ liệu
    • Không tách FK thành User
  • Con
    • Có một loạt các trường không bao giờ được sử dụng. Tất cả các trường dành riêng cho StudentTeacher không bao giờ được điền cho Admins và ngược lại
    • Xác thực dữ liệu, chẳng hạn như các trường bắt buộc cho một lớp cụ thể chẳng hạn như Student trở nên khá phức tạp vì nó không còn là một Not Null đơn giản nữa ràng buộc.

3. Một bảng cho mỗi lớp cụ thể và một bảng cho lớp cha

Trong trường hợp này, bạn tạo bảng cho từng lớp con cụ thể và bạn tạo bảng cho lớp User . Mỗi bảng con cụ thể có FK bắt buộc đối với User

  • Chuyên nghiệp
    • Lược đồ chuẩn hóa nhất:Không có trường lặp lại nào cho các thuộc tính của người dùng và không có trường nào không sử dụng.
    • Không tách FK thành User
    • Ràng buộc xác thực dữ liệu dễ dàng (chẳng hạn như các trường bắt buộc đối với Student )
  • Con
    • Bạn phải truy vấn hai bảng nếu bạn muốn tất cả dữ liệu của một Student
    • Quy tắc xác thực phức tạp để đảm bảo mỗi User bản ghi có chính xác một Admin , Teacher hoặc Student ghi lại.

Bạn chọn tùy chọn nào trong số những tùy chọn này phụ thuộc vào một số thứ như số lượng lớp con, số lượng thuộc tính trong lớp con hoặc lớp cha, số lượng FK của lớp cha và có thể là một số thứ khác mà tôi đã không làm được. nghĩ về.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi nghiêm trọng:Gọi lại mảng phải chứa các chỉ số 0 và 1

  2. truy vấn muliple mysql trong một câu lệnh

  3. Chạy MySQLDump mà không cần khóa bảng

  4. Không thể kết nối với máy chủ mysql bằng go và docker - quay số tcp 127.0.0.1:3306:connect:kết nối bị từ chối

  5. Php PDO có thể tìm nạp hai bộ kết quả không? Và Nếu có, thì 1 bộ kết quả tốt hơn hoặc nhiều hơn 1 là bao nhiêu?