Kluczem tutaj jest mniej o „czy to jest relacja?” i więcej informacji „jak mam do tego uzyskać dostęp?”
MongoDB nie jest „antyreferencją”. MongoDB nie mają zalety sprzężeń, ale tak korzystać z wbudowanych dokumentów.
Tak długo, jak rozumiesz te kompromisy, używanie referencji w MongoDB jest całkowicie uczciwe. Tak naprawdę chodzi o to, jak planujesz wysyłać zapytania do tych obiektów.
Może. Kilka rzeczy do rozważenia.
- Rób
games
mają wartość poza kontekstemuser
? - Ile
games
czy pojedynczyuser
masz? - Czy
games
transakcyjny charakter? - Jak zamierzasz uzyskać dostęp do
games
? Czy zawsze potrzebujesz wszystkich gier użytkownika?
Jeśli planujesz tworzyć tabele wyników, a użytkownik może generować setki dokumentów dotyczących gier, prawdopodobnie słuszne jest posiadanie gier we własnej kolekcji. Przechowywanie dziesięciu tysięcy wystąpień „gry” wewnątrz każdego użytkownika nie jest szczególnie przydatne.
Ale w zależności od twoich odpowiedzi na powyższe, możesz naprawdę pójść w obie strony. Jako papierek lakmusowy, spróbowałbym uruchomić kilka zadań związanych z mapą/redukcją (tj. zbudować prostą tablicę wyników ), aby zobaczyć, jak oceniasz strukturę swoich danych.