Tôi thiết kế một cơ sở dữ liệu để xử lý người sử dụng, tài khoản và các dự án với các mối quan hệ sau và hạn chế:Phân rã một mối quan hệ ternary vào mối quan hệ nhị phân
- Một tài khoản có nhiều người sử dụng
- Một người sử dụng thuộc về nhiều tài khoản
- một tài khoản có nhiều dự án
- một dự án thuộc chỉ một tài khoản
- một người sử dụng hợp tác trong nhiều proje cts (ghi chú dư thừa: mỗi một trong số chúng thuộc về tài khoản riêng của nó).
Nói cách khác, người dùng có thể cộng tác trong nhiều dự án của cùng một tài khoản. Nhưng vì người dùng có thể thuộc về một số tài khoản nên người dùng có thể cộng tác trong nhiều dự án của một số tài khoản. Điều này dẫn tôi đến một ternary cộng tác mối quan hệ:
Sau khi đọc một vài giấy tờ về việc chuyển đổi các mối quan hệ ternary vào mối quan hệ nhị phân tôi đã đưa ra các mối quan hệ tương đương sau:
Hai câu hỏi phát sinh ở đây:
Chuyển đổi này có đúng không? Tôi đã tìm thấy rằng tôi phải thêm kiểm tra bổ sung ở cấp ứng dụng để xử lý chèn. Ví dụ: trước khi thêm
(User,Project)
mới, tôi phải kiểm tra xem người dùng có thuộc cùng một tài khoản mà dự án thuộc về hay không.Có thực sự cần thiết để thiết lập mối quan hệ giữa
Account
vàUser
? Khi mối quan hệ giữaUser
vàProject
đã được thêm vào, chúng tôi có thể không biết tài khoản mà người dùng thuộc về bằng cách truy cập dự án không?
Cảm ơn !!
Tôi thích cách tiếp cận của bạn nhưng rất nhiều người khuyên bạn nên phân tích theo mặc định, do đó, câu hỏi của tôi. – elitalon
Ai đề xuất phân tích theo mặc định? –
@elitalon Đừng bao giờ làm điều gì đó chỉ vì ai đó (kể cả tôi!) Nói với bạn. Luôn hiểu bạn đang làm gì và ** tại sao **, nếu không bạn sẽ [lập trình trùng hợp ngẫu nhiên] (http://pragprog.com/the-pragmatic-programmer/extracts/coincidence). –