2009-09-30 4 views
2

У меня есть объект AccountCredential, который содержит стандартные учетные данные пользователя, а затем другой объект, который содержит несколько из этих объектов AccountCredential. Когда я моделирую это в CoreData, я хотел бы знать, должен ли AccountCredential иметь ссылку на связь для учетной записи для каждого экземпляра, который она хранит.Обзор отношений моделирования CoreData

бы я поставил его в CoreData, как это:

@interface Account : NSManagedObject 
{ 
} 

@property (nonatomic, retain) AccountCredential * twitterAccountCred; 
@property (nonatomic, retain) AccountCredential * facebookAccountCred; 

@end 


@interface AccountCredential : NSManagedObject 
{ 
} 

@property (nonatomic, retain) NSString * password; 
@property (nonatomic, retain) NSString * username; // encrypted 
@property (nonatomic, retain) Account * account1; 
@property (nonatomic, retain) Account * account2; 

@end 

Или это достаточно достаточно для счета, чтобы иметь ссылку на AccountCredential и не ссылку отношения с AccountCredential на счет?

Учетная запись AccountCredential не существует, чтобы знать, что она используется для двух типов учетных записей в интерфейсе «Учетные записи», поэтому я рассматриваю ее как однонаправленную ссылку. Я понимаю, что CoreData любит, чтобы отношения были двунаправленными, но мне любопытно, нужно ли это в модели или нет.

Не-CoreData отношения будут выглядеть следующим образом:

@interface AccountCredential : NSObject { 
    NSString *username; 
    NSString *password; //encrypted 
} 
@end 

@interface Account : NSObject { 
    AccountCredential  *twitterAccountCred; 
    AccountCredential  *facebookAccountCred; 
} 
@end 

ответ

0

Если вы строите это, Xcode, скорее всего, даст вам предупреждение, что нет ни одного обратных связей. CoreData действительно нравится, когда у вас есть обратные отношения (я не могу вспомнить рассуждения, но это имеет смысл, когда вы действительно об этом думаете).

+0

Основные данные используют информацию обратной связи, чтобы обеспечить согласованность графика объекта, если сделано изменение. Но мне интересно, не нужно ли мне делать обратные отношения ... и если да, есть ли способ подавить это предупреждение? –

Смежные вопросы