2011-12-21 7 views
1

私はCore Dataが新しく、データを効率的にフェッチするための最良の方法、特に関連するエンティティを理解するのに少し困っています。一連の基準を満たす親類を持たないコアデータからオブジェクトを取得するにはどうすればよいですか?

患者とアポイントメントという2つのエンティティがあるとします。患者には多くのアポイントメントがあります。

私はappointment_frequencyが毎週ある[Patient.appointment_frequency]、月次など

私は特に速い方法で、それを行うだろうか

任命、これを持っていなかったすべての患者を取得したいです数百または数千の患者オブジェクトと患者あたりの何百ものアポイントメントがありますか?

答えて

0

まず、アポイントのフェッチ要求を可変アポイントのしきい値内にするとします。返されたフェッチされたセットには、それぞれの対応する予定オブジェクトが含まれます。次に、返された予定のそれぞれに患者のことを尋ね、患者ごとに予定をグループ化する(つまり、テーブルビューに表示する)ことによって患者セットを構築できます。

結果セットに多数のオブジェクト(何百、何千)が含まれている場合、CoreDataは結果セット内のオブジェクトの挿入やフォールトを管理しますので、パフォーマンスやパフォーマンスの低下がない限り、予想よりも

+0

私はこれが正しいとは思わない。私が特定の期間内に予定を持っていた患者を得たいなら、これは素晴らしいことです。しかし、この場合、特定の期間内にすべての患者が予定されていなくてもらいたい。私が欲しいと思っているときに予約を取るにはどうすればいいですか? –

+0

その場合、Patientモデルで取得されたプロパティ属性を定義します。フェッチ要求を定義して、アトリビュートのカウント(アポイントメントの配列)をゼロに合わせます。どのように日付を含めるかは、日付変数が定義されている場所を反映している可能性があります(つまり、インターフェイスから来るのか、または日付しきい値をモデル化していますか?) – isaac

0

Appleはcore data programming guideにサンプルコードを提供しています。さまざまな種類のフェッチ要求を作成する方法を説明し、非常に明確に書かれています。

あなたの状況では、私は現在の日付をとり、週(または月、または頻度が何であれ)を減算します。最後の予定が<の計算された日付の頻度Xを持つすべてのユーザーを必要とする述語を使用して、すべての患者のリクエストを取得します。返されたユーザーは予定をスケジュールする必要があります。

+0

私はそれを通過しました。シナリオ。たぶん私はそれを逃している...あなたは私にそれを指摘することができますか? –

+0

よりよい情報のための編集された答え。 –

関連する問題