純粋なsqlite(FMDBラッパーを使用)からコアデータに移行しようとしています。
私の主な理由は、コアデータに組み込まれているicuとは対照的に、sqliteから検索するのが難しいicuの問題(ドイツ語、スペイン語、ギリシャ語、中国語などの多言語プロジェクトがあります)です。(NSDiacriticInsensitive | NSCaseInsensitive)
通常、データ(コード化された本)は次の構造になっています。
id
parentId
content
contentType
nContent
vieworder
ここで、nContentは、データベースの速度を大幅に低下させるため、破棄する必要のあるdiacriticinsensitive / case insensitiveフィールドです(インデックスを使用し、最適化を使用しましたが、検索プロセスを高速化するものが見つかりません)。
私はコアデータの概念に困惑しています-マスター/詳細プロジェクトでは理解できますが、自己参照アイテムオブジェクトを実現する方法を理解できません-
上記の構造で保存される典型的なデータは次のとおりです。
Chapter A
Chapter A.1
Title 1
Content #1
Title 2
Content #2
Chapter A.2
[...]
ここで、「Chapter / Title / Content」はコンテンツフィールドです(したがって、256を超える小さな文字列から大きなテキストブロックまでさまざまです)。
したがって、私の質問は次のとおりです。*コアデータエンティティ/クラスでこの構造を実現する方法(自己参照関係が必要になることはわかっています)*各レベルのアイテムを見つける方法(たとえば、すべてのタイトルタイプを見つけたい) --これがcontentTypeフィールドを持っている理由です)*コアデータ構造でこれにインデックスを付けると、通常のSQLよりも優れたインデックスと時間検索率が得られます(nContentフィールドでLIKE %%構造を使用します)?* SQLITEに残して、別のインデックス作成戦略を見つけてみてください。
これらの質問に自由に答えるか、少なくとも洞察を与えてください。
ここでの更新 は、私が意味するもう1つの「現実的な」例です。
Beginning HTML (Type: Chapter, parentid:0,id:1)
The fundamental pieces (Type Chapter, parentid:1, id:2)
How to begin (Type: title, parentid:2, id:3)
[content] (Type: content, parentid:3, id:4)
Using paragraphs (Type title, parentid:2, id:5)
[content] (Type: content, parentid:5, id:6)
Using Forms (Type: chapter, parentid:1, id:7)
... (and so on)