2017-12-19 17 views
0

私は製品に関する多くの情報を保存しなければなりません。その上に価格があり、私は彼とそのすべての更新を保管する必要があります。 NoSQLのデータベースCouchDB、小さな冗長情報を保存する

格納するためのベストプラクティスは何

{ 
    "_id": "price:usd:book:<timestamp>", 
    "price": "1" 
}, 
{ 
    "_id": "price:usd:book:<timestamp>", 
    "price": "2.1" 
} 

または

{ 
    "_id": "price:usd:book", 
    "price": { "<timestamp>": "1", "<timestamp>": "2.1" } 
} 

おかげ

答えて

2

は私の最初の一つは、CouchDBの使用状況に関する勧告について読みましたhttps://github.com/eHealthAfrica/couchdb-best-practices#document-modeling

あなたのケースでは、価格履歴で更新されている1つのドキュメントがある場合、多くのリビジョンを持つ大きなドキュメントが得られます。この文書が更新されるたびに、彼の歴史の一部が保持されるべきであり、これは保管の点でいくつかの影響をもたらすだろう。複製プロセスは、ドキュメントに対して作成されたリビジョン数によっても影響を受けます。

単一のドキュメントは、管理しなければならない競合の影響を受けやすくなります。

更新されていない小さな文書が多数ある場合、以前の問題はすべて軽減されます。

いずれの場合も、両方のアプローチのどちらが適しているかを判断するためにビジネスケースを考慮する必要があります。

関連する問題