0

Core Data に予約システムがあり、現時点で Appointment と関係がある Transaction エンティティがあります。予約はクライアントが行うことができます。また、予定にはサービス タイプとの関係があります。

コンピューターで行われたすべてのトランザクションを保存したいのですが、クライアントが削除された場合でも、クライアントの過去のトランザクションを表示したいと考えています。同様に、予定またはサービスが削除された場合でも、過去のトランザクションに表示されるようにしたいと考えています。また、クライアント名に対する変更はトランザクション内で変更する必要がありますが、サービス名に対する変更はトランザクション内で変更しないでください。

これはどのように達成できますか?実際にエンティティを削除するのではなく、すべてのエンティティに「削除」属性を設定できることはわかっていますが、たとえばサービス内で変更が行われた場合、その変更はトランザクションに反映されます。

4

1 に答える 1

0

コンプライアンスが問題になる場合は、エンティティの複数のコピーを保持できます。作成タイムスタンプを使用すると、それらを識別するための非常に優れた一意の ID が得られます (別のプロパティまたは独自の ID スキームと組み合わせて)。

ここで、トランザクションを変更する代わりに、作成日が同じですべてのデータをコピーする新しいトランザクションを作成します (ただし、modifiedDateプロパティのタイムスタンプは異なります)。それらを表示するときは、最新バージョンを表示するだけです。削除するときは、削除済みとしてマークするだけです。

于 2013-06-24T15:00:03.333 に答える