2012-01-08 8 views
1

私は詩集を持っています。プライマリキー以外の属性にcoreDataを結合する

すべての詩には著者があり、ページには複数の詩がある場合があります。 私のデータベース構造は、私は受け入れる方法を記述しようとしています。この

詩(PoemName、PoemAuthor、PAGENUMBER

ページ(PAGENUMBER、ダウンロード)

のような少し見えます著者名が表示され、著者が表示されているすべてのページがダウンロードされます(まだそのページをダウンロードしていない場合のみ)。 SQLで

私は単純に、このようなクエリになります。

SELECT poems.pageNumber 
FROM poems 
JOIN pages ON Poems.pageNumber = pages.pageNumber 
WHERE poems.PoemAuthor='foo' AND downloaded=1 
GROUP BY pages.pageNumber; 

は残念ながら、私はそれが適切にページ番号に参加するために取得することはできませんよ。代わりに、コアデータは、挿入した主キーの表に結合しようとします。

基本的に、私はそれが代わりにcoreDataの主キーのpageNumbersに参加するために得ることができるように、私はテーブル間の関係を微調整する方法を知っておく必要があります。

答えて

1

コアデータはデータベース抽象化レイヤーではなく、オブジェクトグラフ管理フレームワーク(およびその他)です。ジョインとカラムについて心配するべきではありません。詩オブジェクトがPageオブジェクトに関連している

場合、あなたは自分のモデルでその関係を定義する必要があります。私は、SQLの背景から来て、私は論理的なエンティティおよびそれらの関係ではなく、(どのような場合にコアデータでSQLである必要はありません)基本となる実装について考えるとき完全に理解しやすいコアデータを見つけます。

+0

私はこれを理解していますが、そのような関係をどのように設定するのか分かりません。 – endy

関連する問題