9

appengine のデータストアにエンティティ A を保存しています。A の ID は Long 型です。A のフィールドに加えられたすべての変更の履歴を保持したいと思います。エンティティでこのタイプのバージョン ing を実行するためのベスト プラクティスは何ですか? A のサブクラスでうまく機能し、可能な限り自動化されたソリューションを希望します。

ありがとう!

4

3 に答える 3

2

各エンティティに 2 つの参照 (前のバージョンへの参照と次のバージョンへの参照) があるエンティティのリンク リストを作成できます。もちろん、これらの参照を自分で維持する必要があります。エンティティの最新バージョンは、次のバージョンへの参照 (または空/null 参照) のないものになります。

ユース ケースによっては、エンティティの 2 つのバージョン間の違いのみを保存する方法を検討することもできます (変更が小さく、エンティティが大きい場合)。

于 2011-06-05T01:36:41.713 に答える
0

AppEngine アプリの 1 つで同様のことを行っています。私たちが見つけた唯一の効率的な方法は、あなたのバージョンであるエンティティ B を用意し、エンティティ A がキーのリストを保持することでした。

次に、REST サービスで ETag を使用して、クライアントがコピーを取得するバージョンを識別します。

于 2011-06-05T00:43:56.087 に答える