sql >> Databáze >  >> NoSQL >> MongoDB

Návrh dokumentu MongoDB pro komentáře (a komentáře k nim)

Vidím tři možná řešení (je to jen můj názor):

1.

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

Výhody: můžete snadno načíst, zobrazit hierarchická data. nepoznáte rodičovský komentář od komentáře.
Nevýhody: nemůžete se dotazovat a aktualizovat komentář s nějakým ID.

2.

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

Výhody: Můžete se dotazovat/aktualizovat, jak chcete.
Nevýhody: Velké množství požadavků na mongo, když potřebujete hierarchii zatížení.

3. Můj oblíbený;) :

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

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

Výhody: Můžete se dotazovat/aktualizovat, jak chcete. Můžete načíst článek se všemi komentáři v jedné žádosti. Není třeba ukládat redundantní ArticleType a ArticleId
Nevýhody: Je třeba načíst článek a vytvořit hierarchii v paměti.

Doufám, že vám to pomůže s výběrem..



  1. jak zacházet s vypršením platnosti relace na základě redis?

  2. Výkon hromadného vkládání v MongoDB pro velké sbírky

  3. Jak mohu získat všechna ID dokumentů v MongoDB?

  4. Proč mongoDB používá objectID?