@Gareth , hebt u meerdere legitieme manieren om dit te doen. De belangrijkste zorg is dus hoe u van plan bent de gegevens op te vragen (d.w.z.:welke zoekopdrachten snel moeten zijn )
Hier zijn een aantal methoden.
Methode #1:de verzameling "links"
Je zou een verzameling kunnen bouwen die eenvoudig toewijzingen tussen de verzamelingen bevat.
Voordelen:
- Ondersteunt atomaire updates zodat gegevens niet verloren gaan
Nadelen:
- Extra zoekopdracht bij het wisselen tussen collecties
Methode #2:bewaar kopieën van kleinere toewijzingen in een grotere verzameling
Bijvoorbeeld:u heeft miljoenen Products
, maar slechts honderd Categories
. Dan zou je de Categories
. opslaan als een array binnen elk Product
.
Voordelen:
- Kleinste voetafdruk
- Slechts één update nodig
Nadelen:
- Extra vraag als je de "verkeerde kant op" gaat
Methode #3:bewaar kopieën van alle toewijzingen in beide verzamelingen
(wat je voorstelt)
Voordelen:
- Toegang tot één zoekopdracht om tussen beide verzamelingen te schakelen
Nadelen:
- Potentieel grote indexen
- Transacties nodig (?)
Laten we het hebben over "transacties nodig". Er zijn verschillende manieren om transacties uit te voeren en het hangt er echt van af welk type veiligheid u nodig heeft.
Dit kun je zeker doen. Je zult jezelf moeten afvragen, wat is het ergste dat er gebeurt als slechts één van de saves mislukt?
Methode #4:de wijziging in de wachtrij plaatsen
Ik weet niet of je ooit met wachtrijen hebt gewerkt, maar als je wat speelruimte hebt, kun je een eenvoudige wachtrij bouwen en verschillende taken uitvoeren die hun respectievelijke verzamelingen bijwerken.
Dit is een veel geavanceerdere oplossing. Ik zou geneigd zijn om voor #2 of #3 te gaan.