MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Progettazione del documento MongoDB per i commenti (e i relativi commenti di risposta)

Vedo tre soluzioni possibili (è solo la mia opinione):

1.

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

Pro: puoi caricare facilmente, visualizzare dati gerarchici. non conosci il commento del genitore dal commento.
Contro: non puoi interrogare e aggiornare il commento con qualche ID.

2.

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

Pro: Puoi interrogare/aggiornare come vuoi.
Contro: Grande quantità di richieste da mongo quando hai bisogno di una gerarchia di carico.

3.Il mio preferito;) :

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

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

Pro: Puoi interrogare/aggiornare come vuoi. Puoi caricare l'articolo con tutti i commenti in un'unica richiesta. Non c'è bisogno di memorizzare ArticleType e ArticleId riduranti
Contro: È necessario caricare l'articolo e creare una gerarchia in memoria.

Spero che questo ti aiuti a fare una scelta..