MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Dokumentdesign für Kommentare (und ihre Antwortkommentare)

Ich sehe drei mögliche Lösungen (es ist nur meine Meinung):

1.

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

Vorteile: Sie können hierarchische Daten einfach laden und anzeigen. Sie kennen Elternkommentar nicht von Kommentar.
Nachteile: Sie können Kommentare nicht mit irgendeiner ID abfragen und aktualisieren.

2.

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

Vorteile: Sie können nach Belieben abfragen/aktualisieren.
Nachteile: Große Menge an Anfragen an Mongo, wenn Sie die Hierarchie laden müssen.

3. Mein Favorit;) :

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

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

Vorteile: Sie können nach Belieben abfragen/aktualisieren. Sie können Artikel mit allen Kommentaren in einer Anfrage laden. Keine Notwendigkeit, Artikeltyp und Artikel-ID mehrfach zu speichern
Nachteile: Artikel laden und Hierarchie im Speicher aufbauen.

Ich hoffe, das hilft Ihnen bei der Auswahl.