J'ai commencé à apprendre NoSQL sur un exemple de RavenDB. Je l'ai commencé avec un modèle le plus simple, disons que nous avons des sujets qui ont été créés par les utilisateurs:Comment synchroniser les changements dans nosql db (ravendb)
public class Topic
{
public string Id { get; protected set; }
public string Title { get; set; }
public string Text { get; set; }
public DenormalizedUser User { get; set; }
}
public class DenormalizedUser
{
public string Id { get; set; }
public string Name { get; set; }
}
public class User
{
public string Id { get; protected set; }
public string Name { get; set; }
public DateTime Birthdate { get; set; }
//some other fields
}
On n'a pas besoin du tout User
pour afficher une Topic
, donc je l'ai denormalized à DenormalizedUser
, contenant un Id
et un Name
.
Alors, voici les questions:
1) Cette approche est correcte pour NoSQL?
2) Comment gérer les cas lorsque User
change le Name
? Dois-je mettre à jour manuellement tous les champs Name
dans les classes dénormalisées?
Je ne sais pas pour la question 1. En ce qui concerne 2, oui vous devez mettre à jour le champ pour « Nom » dans « DenormalizedUser » aussi parce que les chaînes, pour toutes fins utiles, sont gérées par valeur, et non référence. Je ne vois pas seulement pourquoi vous ne pouvez pas utiliser seulement 'User' - 'DenormalizedUser' des données inutiles et redondantes. _Edited (plusieurs fois) pour la clarté et la grammaire. J'ai besoin de plus de café. _ –