appengine のデータストアにエンティティ A を保存しています。A の ID は Long 型です。A のフィールドに加えられたすべての変更の履歴を保持したいと思います。エンティティでこのタイプのバージョン ing を実行するためのベスト プラクティスは何ですか? A のサブクラスでうまく機能し、可能な限り自動化されたソリューションを希望します。
ありがとう!
appengine のデータストアにエンティティ A を保存しています。A の ID は Long 型です。A のフィールドに加えられたすべての変更の履歴を保持したいと思います。エンティティでこのタイプのバージョン ing を実行するためのベスト プラクティスは何ですか? A のサブクラスでうまく機能し、可能な限り自動化されたソリューションを希望します。
ありがとう!
各エンティティに 2 つの参照 (前のバージョンへの参照と次のバージョンへの参照) があるエンティティのリンク リストを作成できます。もちろん、これらの参照を自分で維持する必要があります。エンティティの最新バージョンは、次のバージョンへの参照 (または空/null 参照) のないものになります。
ユース ケースによっては、エンティティの 2 つのバージョン間の違いのみを保存する方法を検討することもできます (変更が小さく、エンティティが大きい場合)。
AppEngine アプリの 1 つで同様のことを行っています。私たちが見つけた唯一の効率的な方法は、あなたのバージョンであるエンティティ B を用意し、エンティティ A がキーのリストを保持することでした。
次に、REST サービスで ETag を使用して、クライアントがコピーを取得するバージョンを識別します。