MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Conception de documents MongoDB pour les commentaires (et leurs commentaires de réponse)

Je vois trois solutions possibles (ce n'est que mon avis):

1.

public class Comment 
{
  ...
  public List<Comment> ChildComments {get;set;}
}

Avantages : vous pouvez facilement charger, afficher des données hiérarchiques. vous ne connaissez pas le commentaire du parent du commentaire.
Inconvénients : vous ne pouvez pas interroger et mettre à jour un commentaire avec un identifiant.

2.

public class Comment 
{
  ...
  public string ParentCommentId {get;set;}
}

Avantages : Vous pouvez interroger/mettre à jour comme vous le souhaitez.
Inconvénients : Grande quantité de requêtes à mongo lorsque vous avez besoin de charger la hiérarchie.

3.Mon préféré;) :

 public class Comment 
 {
   ...
   public string ParentCommentId {get;set;}
 }

 public class Article
 {
   ...
   public List<Comment> Comments {get;set;}
 }

Avantages : Vous pouvez interroger/mettre à jour comme vous le souhaitez. Vous pouvez charger l'article avec tous les commentaires en une seule demande. Pas besoin de stocker ArticleType et ArticleId redondants
Inconvénients : Besoin de charger l'article et de créer une hiérarchie en mémoire.

J'espère que cela vous aidera à faire votre choix..