MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Дизайн на MongoDB документ за коментари (и техните коментари в отговор)

Виждам три възможни решения (това е само моето мнение):

1.

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

Плюсове: можете лесно да зареждате, показвате йерархични данни. не познавате родителски коментар от коментар.
Недостатъци: не можете да правите заявки и да актуализирате коментар с някакъв идентификатор.

2.

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

Плюсове: Можете да правите заявки/актуализации, както желаете.
Недостатъци: Голямо количество заявки към mongo, когато имате нужда от йерархия на зареждане.

3. Любимият ми;) :

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

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

Плюсове: Можете да правите заявки/актуализации, както желаете. Можете да заредите статия с всички коментари в една заявка. Няма нужда да съхранявате редурантен ArticleType и ArticleId
Недостатъци: Трябва да заредите статия и да изградите йерархия в паметта.

Надявам се това да ви помогне да направите избор..



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Доктрина MongoDB намиране по id

  2. MongoDB проекция на вложени масиви

  3. Populate() ref вложен в обектен масив

  4. Къде трябва да добавя опцията --rest за MongoDB?

  5. Композитен ключ на MongoDB:InvalidOperationException:{document}. Самоличността не се поддържа