Tôi đang thiết kế một cơ sở dữ liệu nhỏ cho một dự án cá nhân, và một trong các bảng, gọi nó là C
, cần có khóa ngoài cho một trong hai bảng, gọi chúng là A
và B
, khác nhau theo mục nhập. Cách tốt nhất để thực hiện điều này là gì?Làm cách nào để xử lý mối quan hệ "HOẶC" trong thiết kế ERD (bảng)?
Ý tưởng cho đến nay:
- Tạo bảng với hai lĩnh vực then chốt ngoại nullable kết nối với hai bảng.
- Có thể có trình kích hoạt để từ chối chèn và cập nhật sẽ dẫn đến 0 hoặc 2 trong số đó không có giá trị.
- Hai bảng riêng biệt với dữ liệu giống hệt
- này phá vỡ các quy tắc về sao chép dữ liệu.
Cách thanh lịch hơn để giải quyết vấn đề này là gì?
Đã thêm thẻ 'polymorphic-associations' vì đó là thuật ngữ chung cho loại mối quan hệ này. –