2011-06-22 18 views
0

こんにちは私は2つの関係タイプを追加して2つのmessagesの関係を設定したいと考えています。コアデータに関係タイプを定義してください

例:

message2 isDuplicate message3 
message3 isSuccessor message4 
message4 isPredecessor message3 
etc. 

タイプの数は、各タイプの関係は現実的な選択肢ではない追加するよう固定されていません。私はSQLのような何かをする:

Message{_id_, text} 
msgRelation{_msgID1_, _msgID2_, type} 
//_msgID1_, _msgID2_ foreign keys to Message.id 

私は誰かが助けることを願っています。

答えて

0

関係自体をモデル化するエンティティを追加する必要があるように思えます。

RelateType{ 
    type:string // ...isDuplicate, isSuccessor, isPredecessor etc 
    fromMessage<<-->Message.toMessages 
    toMessage<<-->Message.fromMessages 
} 

Message{ 
    title:string 
    toMessages<-->>RelateType.fromMessages 
    fromMessages<-->>RelateType.toMessages 
} 

RelateTypeは、任意の2つのMessages間にブリッジを形成します。 RelateType.typeの関係では、任意の種類の関係をモデル化できます。タイプによって、特定のMessageオブジェクトの関係を見つけるにはあなただけ:

NSString *[email protected]"isDuplicate"; 
NSPredicate *p=[NSPredicate predicateWithFormat:@"type == %@", relateType]; 
NSSet *duplicateMsgs=[msgObj filteredSetUsingPredicate:p]; 

また、あなたは関係等の特定のタイプのすべてを見つけるために、RelateTypeエンティティにフェッチを行うことができますすべてisDuplicateの関係。

しかし、通常、このようなことをしているのは、SQLスキーマをコアデータモデルに詰め込もうとしたためです。これは常に間違いです。

関連する問題