Chìa khóa ở đây không phải là về "đây có phải là mối quan hệ không?" và nhiều thông tin khác về "làm cách nào để truy cập vào trang này?"
MongoDB không phải là "phản tham chiếu". MongoDB không không có lợi ích của việc tham gia, nhưng nó không có lợi ích của các tài liệu nhúng.
Miễn là bạn hiểu những đánh đổi này thì việc sử dụng các tham chiếu trong MongoDB là hoàn toàn hợp lý. Thực sự là về cách bạn định truy vấn các đối tượng này.
Có lẽ. Một số điều cần xem xét.
- Làm
games
có giá trị bên ngoài ngữ cảnh củauser
? - Có bao nhiêu
games
sẽ là mộtuser
có? - Là
games
về bản chất giao dịch? - Làm cách nào để bạn truy cập
games
? Bạn có luôn cần tất cả trò chơi của người dùng không?
Nếu bạn đang lên kế hoạch xây dựng bảng xếp hạng và một người dùng có thể tạo ra hàng trăm tài liệu trò chơi, thì việc có trò chơi trong bộ sưu tập của riêng họ là điều hợp lý. Lưu trữ mười nghìn phiên bản "trò chơi" bên trong của mỗi người dùng không đặc biệt hữu ích.
Nhưng tùy thuộc vào câu trả lời của bạn cho những điều trên, bạn thực sự có thể đi theo một trong hai cách. Như bài kiểm tra giấy quỳ, tôi sẽ thử chạy một số Bản đồ / Rút gọn công việc ( tức là tạo một bảng thành tích đơn giản ) để xem bạn cảm thấy thế nào về cấu trúc dữ liệu của mình.