2017-02-20 13 views
0

私は、それらの仕事の中で「仕事」と「実体」(または仕事)からなる一種のプロジェクト管理アプリを作っています。その一環として、各ユーザーに固有のToDoリストを作成しています。データベースの最適なデザインは何ですか?Mongodbデザインのアドバイス - todoリスト

エンティティは独自のコレクションに存在し、jobIdフィールドを介してジョブに関連付けられます。

Entity 
    Todos[] 
     User1 
       Todo1 
       Todo2 
       ... 
     User2 
     ... 

は、私もそれが良いようにそこドスを格納するだろうので、ユーザーのコレクションを持っている:

私の最初に考えたのは、それはのような構造になった

User 
    Todos[] 
      Entity 
       Todo1 
       Todo2 
       ... 

またはいくつかの他の方法?私は更新は

...更新とドスを削除すると、かなりトリッキーになると思うオプション3 - 私は、ユーザーの配列を削除し、それぞれのToDoオブジェクトにユーザーを格納することができ、同様:

Entity 
    Todos[] 
      Todo{ 
       User: John 
       Text: some todo 
       Done: false 

その後、特定のユーザーによってすべてのtodosをフィルタリングします。私はいくつかの重複データ(ユーザー)を取得しますが、私はそれがとても悪いとは思わないと思います。

また、todoを更新/削除すると、テキストフィールドに基づいて一致させることは安全ですか?それぞれのToDoに固有のID?

+0

https://www.mongodb.com/blog/post/6-rules-of-thumb-for-mongodb-schema-design-part-1よくお読みください –

答えて

0

私はあなたの最初の考えが2つの中で最高だと信じています。その中で、ユーザーは参照されます。 2番目の例では、todosが入っているユーザー文書のように見えます。私はこれがあまりにも多くのカップリングであると思っています。最初の方法は、将来の理由が指示されるように、よりよく分解され、変更/維持が容易です。

+0

ご返信ありがとうございます。あなたはどのようにしてトードゥをクエ​​リして編集するのか知っていますか?それは2つの配列内にあるので、私は今日それと苦労していた.. –

関連する問題