今後のサイトで CouchDB を使用することを検討していますが、サイトのユーザー評価システムを実装する方法については少し混乱しています。基本的に、コンテンツの各アイテムは、特定のユーザーによって評価されます。これを行う方法として、CouchDB モデルで最も理にかなっているのはどれですか? 最もドライで最も論理的な方法は、3 つの異なるドキュメント タイプ、コンテンツ、ユーザー、および次のような user_rating ドキュメントを持つことだと思います。
{ ユーザーID:「ユーザーID」 content_id: "CONTENTID" 評価: 6 }
次に、マップがコンテンツ ドキュメント ID をキーとするすべてのコンテンツ ドキュメントと user_rating ドキュメントのセットであり、reduce が評価の平均を集計し、コンテンツ ドキュメント ID をキーとするコンテンツ ドキュメントを返すビューを作成します。
それがこれを行う最良の方法ですか?私はまだ CouchDB のベスト プラクティスに関するリソースをあまり見つけていないので、これらすべてについてかなり確信が持てません。
私の結論:以下の受け入れられた回答は、私がほとんど実装しようとしていたものですが、注意してください。ドキュメントは、他のドキュメントプロパティに基づく高度なクエリを面倒にするコンテンツドキュメントIDによってキーを設定する必要があります. このアプリでは、必要に応じて SQL に戻ります。