Đây là một thiết kế tồi. Chỉ cần tạo khóa chính 2 cột và khóa ngoại 2 cột cho nó. Đây là một mô hình chống cơ bản được gọi là "thông tin mã hóa trong các khóa" mà (do đó) được gọi là các khóa "thông minh", "thông minh" hoặc "nối liền". Một khóa tốt là một khóa "câm".
Vd: :
Bên cạnh đó, không có nhu c ầu để làm điều này.
Nhiều DBMS cho phép các "cột được tính toán" có các giá trị được tính toán tự động từ các cột khác. Để tạo một khóa chính hoặc khóa ngoại, bạn thường cần nó "lâu dài", tức là có bộ nhớ chiếm dụng như một cột bình thường so với chỉ được tính toán khi cần thiết như một khung nhìn. MySQL không có những thứ này, nhưng 5.7.5 có một số chức năng mà chúng được gọi là "cột được tạo", có thể được "lưu trữ". Nhưng đừng làm điều này vì PK hoặc FK!
Sự cố thiết kế thực tế đang xử lý cơ sở dữ liệu / SQL con / hierarchies / inherit / đa hình .