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, usersvà 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
usersbảng, thêmcustomercột có thể là tham chiếu FOREIGN KEY đếncustomershoặcNULLđánh dấu.Trong
customersbảng, bao gồm mộtusercột (được đặt với mộtUNIQUEràng buộc) trỏ đếnusersbả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?