Phụ thuộc vào các ràng buộc:
- Bạn có khóa ngoại hoặc KIỂM TRA trên
apples
không không tồn tại trênoranges
(hoặc ngược lại)? - Bạn có cần giữ các khóa duy nhất trên cả hai bảng không (vì vậy không có
apples
có thể có cùng một ID với một sốorange
)?
Nếu câu trả lời cho hai câu hỏi này là: "có" và "không" , giữ các bảng riêng biệt (vì vậy các ràng buộc có thể được tạo cho bảng cụ thể).
Nếu câu trả lời là: "không" và "có" , hợp nhất chúng lại với nhau (để bạn có thể đóng một khóa kéo dài cả hai).
Nếu câu trả lời là: "có" và "có" , hãy xem xét việc mô phỏng kế thừa:
Dữ liệu tra cứu là một ví dụ điển hình về các bảng trông giống nhau, nhưng phải được giữ riêng biệt để các FK có thể được giữ riêng biệt.
Cụ thể, đây là chiến lược "tất cả các lớp trong các bảng riêng biệt" để đại diện cho sự kế thừa (còn gọi là danh mục, phân lớp con, định kiểu con, phân cấp tổng quát hóa, v.v.). Bạn có thể muốn xem bài đăng này để biết thêm thông tin.