Hãy để chúng tôi nói rằng tôi đang thiết kế một cơ sở dữ liệu cho một kịch bản trong đó tồn tại mối quan hệ một đối một hoặc không (1-0..1). Ví dụ:
- Có một nhóm Người dùng và một số Người dùng cũng có thể là Khách hàng .
Vì vậy, tôi đã tạo ra hai bảng tương ứng, users
và customers
, nhưng
Cách tốt nhất để thể hiện và thực hiện tình huống này trong một nền tảng SQL nhất định là gì? Tôi đã xem xét hai giải pháp có thể:
Trong
users
bảng, thêmcustomer
cột có thể là tham chiếu FOREIGN KEY đếncustomers
hoặcNULL
đánh dấu.Trong
customers
bảng, bao gồm mộtuser
cột (được đặt với mộtUNIQUE
ràng buộc) trỏ đếnusers
bảng.
Tôi đã hỏi một câu hỏi tương tự ở một số diễn đàn, nhưng câu trả lời về cơ bản là bất cứ điều gì bạn cần, bất cứ điều gì bạn nghĩ thuận tiện. Tôi không thích kiểu trả lời này. Tôi muốn một phần nghiêm trọng của lý thuyết DB thay vào đó, một câu trả lời có cơ sở. Tôi có thể đọc các mối quan hệ 1-0..1 ở đâu?