MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Thiết kế tài liệu MongoDB cho các bình luận (và các bình luận trả lời của họ)

Tôi thấy ba giải pháp khả thi (đó chỉ là ý kiến ​​của tôi):

1.

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

Ưu điểm: bạn có thể dễ dàng tải, hiển thị dữ liệu phân cấp. bạn không biết nhận xét của phụ huynh từ bình luận.
Nhược điểm: bạn không thể truy vấn và cập nhật nhận xét với một số id.

2.

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

Ưu điểm: Bạn có thể truy vấn / cập nhật như bạn muốn.
Nhược điểm: Số lượng yêu cầu lớn đến mongo khi bạn cần phân cấp tải.

3. người yêu thích của tôi;):

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

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

Ưu điểm: Bạn có thể truy vấn / cập nhật như bạn muốn. Bạn có thể tải bài viết với tất cả các bình luận trong một yêu cầu. Không cần lưu trữ ArticleType và ArticleId
Nhược điểm: Cần tải bài viết và xây dựng hệ thống phân cấp trong bộ nhớ.

Hy vọng điều này sẽ giúp bạn đưa ra lựa chọn ..



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Xây dựng SQL LEFT () này trong MongoDB Query?

  2. Bộ kết quả MongoDB cho Aggregate ()

  3. như truy vấn trong mongoDB

  4. Bản in đẹp trong MongoDB shell làm mặc định

  5. Tổng hợp theo cấp độ tháng và cấp độ năm, cũng tìm thấy mức trung bình trong MongoDB