sql >> データベース >  >> NoSQL >> MongoDB

コメント(およびその返信コメント)のMongoDBドキュメントデザイン

    私は3つの可能な解決策を見ています(それは私の意見です):

    1.

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

    長所: 簡単にロードして、階層データを表示できます。コメントから親のコメントがわかりません。
    短所: あるIDでコメントを照会および更新することはできません。

    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;}
     }
    

    長所: 必要に応じてクエリ/更新できます。 1回のリクエストですべてのコメントを含む記事を読み込むことができます。冗長なArticleTypeとArticleIdを保存する必要はありません
    短所: 記事を読み込んで、メモリに階層を構築する必要があります。

    これがあなたの選択に役立つことを願っています。



    1. 参照フィールドmongoengineを保存します

    2. Yii2で次のmongoルックアップクエリを作成する方法

    3. MongoDB-時間範囲間のクエリ

    4. postgresのLRUキャッシュとしてredisを使用する