2012-02-01 12 views
1

間の機能「のような」私はUserエンティティと他のエンティティ間ののような機能を実装しようよ、ユーザーAがエンティティX.のようにしかし、私は」することができるようにコアデータでこれを最もうまく実装する方法がわかりません。コアデータとエンティティ

私は検討する必要がある2つの主なポイントがあります:オフライン 行われていたLikeを同期する方法が必要

  • 好感の持てるエンティティを追加するには
  • 些細でなければなりません

    私の最初の考えは抽象コアデータエンティティLikeを作成することでした。

    UserLikeと対多の関係があり、LikeUserを有しています。

    そして好感の持てるなければならない各エンティティに対して、私は好感の持てるエンティティに対1の関係を有しているLikeのサブクラスを作成します。 Userとの関係は継承されます。

    このように、抽象エンティティLikeは、 "syncedAt"や "deletedAt"などの属性を持つことができるため、タイプエンティティLikeがサーバに同期されているかどうかを調べることができます。

    これは合理的であるか、コアデータのこの問題を解決する良い方法がありますか?私が予期していないこのデザインには欠点がありますか?

答えて

0

あなたの好きなエンティティが継承する親エンティティLikableEntityを持たないのはなぜですか?これはsynchedAtの属性を持つ可能性があります。あなたのユーザーは多対多の関係を持っていますlikedEntitiesには好きなものが含まれています

+0

私はこれについても考えました。しかし、いくつかの問題があります。エンティティと同期していないもの、つまりサーバーにPOSTする必要がある特定の「好きな」ものはわかりません。また、望ましいエンティティは既に好都合ではない別のクラスから継承しているかもしれません。 – hwaxxer

+0

私はあなたが最初のものの述語を使うことができたと思う:synchedAt == nil(あるいは古いタイムアウトより古い)? 2番目のクラスでは、他のクラスがルートである場合、LikableEntityはそれを継承し、クラスはLikableEntityから継承します。だから、ルートクラスは好きではありませんが、あなたのクラスは? – wattson12

+0

述語を使用しても、変更されたものと同期が必要なものを正確に把握することはできません。オブジェクトが変更されたか、またはそれとの関係が変更されましたか?そして、LikableEntityを他のエンティティから継承させるのはちょっと厄介なようです。他のエンティティから継承する好きなものを作る必要がある場合はどうすればよいですか? – hwaxxer

関連する問題