Nie jestem pewien, czy kolekcja jest właściwym słowem, ale próbuję powiedzieć cokolwiek, co będzie w MongoDB
Mam zamiar dokonać zmiany z MySQL na MongoDB i czytałem na ten temat, ale jedną rzeczą, której nie mogę znaleźć wiele, są kolekcje jeden-do-wielu lub wiele-do-wielu.
Więc powiedz, że mam forum collection
, forum collection
ma wiele posts
, a także jest user
kolekcja, która ma wiele posts
(posty są dzielone między forum i użytkownika, dzięki czemu można zobaczyć profil użytkownika i zobaczyć jego posty, a także odwiedzić forum, które wypełni ostatnie posty)
Jak powinienem się kojarzyć?te, czy powinienem bezpośrednio wstawić post do kolekcji User i Forum w ten sposób, że mogę po prostu zapytać użytkownika i uzyskać jego posty, lub powinienem przechowywać posty na forach z userid
a następnie zapytaj kolekcję forum o posty według pewnego userid
Przepraszam za słabe formatowanie, ponieważ korzystam z telefonu komórkowego. To nie jest specyficzne dla forum, to tylko przykład właściwego sposobu przechowywania kolekcji One-to-Many. Dzięki!
Odpowiedzi:
2 dla odpowiedzi № 1Po pierwsze, zadaj sobie pytanie, dlaczego się przeprowadzaszMongoDB, MongoDB z definicji nie jest relacyjną bazą danych. Jeśli chcesz osiągnąć wydajność zapytań, odpowiedzią jest dwukrotne przechowywanie danych i utrzymywanie ich za pomocą kodu (gdy rzeczy są aktualizowane, aktualizuj dwa razy itd.).
Jeśli nie masz problemów z wydajnością, rozważ zachowanie Mysql, ponieważ trzymanie danych relacyjnych w MongoDB jest mniej zalecane, ponieważ nie masz transakcji.
Więc nie ma dobra ani zła, zależy to od problemu, który próbujesz rozwiązać.