In principe heb je 3 opties:
-
Bewaar gewoon de
userId
en vervolgens de gebruiker afzonderlijk ophalen. Zo krijgt u altijd de optimale resultaten op het gebied van verse data. Maar het gaat natuurlijk langzamer. Dat is eigenlijk wat een relationele database doet. Een SQL-database zal gewoon naar de externe sleutel kijken en de gegevens ophalen met een id. -
Leef met verouderde gegevens. Bewaar een duplicaat van de gebruikersnaam in de opmerkingen. Soms is dit gewenst gedrag, omdat je op deze manier de gegevens precies kunt weergeven zoals ze waren toen ze werden opgeslagen. Dit betekent:Als John een opmerking maakt en later zijn gebruikersnaam wordt bijgewerkt naar Paul, kun je nog steeds zien dat hij is aangemaakt als John. (Dit is vooral handig voor bijvoorbeeld facturen, als u daar een persoon verwijst en het adres verandert, dan wilt u het adres van een oude factuur niet bijwerken)
-
Werk alles bij dat een gebruikersnaam bevat, wanneer de gebruikersnaam wordt bijgewerkt. Dit is ook niet slecht, omdat een gebruikersnaam normaal gesproken nooit zou moeten veranderen. Lezen gaat dus altijd snel, omdat de naam in de opmerking wordt opgeslagen. En als de naam verandert, moet je alles bijwerken waar de gebruiker bij betrokken is. Dit is natuurlijk een langzame taak, maar omdat het niet elke minuut zou moeten gebeuren, is het acceptabel.
3.1 Je zou dingen kunnen optimaliseren:als gebruikersnaam verandert, wordt dit ergens opgeslagen en om middernacht toegepast. Op deze manier kun je meerdere naamswijzigingen verzamelen en alles tegelijkertijd bijwerken.
Zoals je kunt zien:NoSQL gaat over keuze . U kunt de dingen doen die het beste bij uw gegevens passen. Het is natuurlijk altijd een afweging:langzamer/sneller, meer/minder code om te schrijven, makkelijker/moeilijker te onderhouden.
Samengevat is het:
- Snel schrijven, consistente gegevens, langzaam lezen
- Snel schrijven, inconsistente gegevens, snel lezen
- Snel schrijven, snel lezen, gegevens worden consistent na het updateproces, wat enige tijd kan duren. En het updateproces is natuurlijk traag.