Безопасно ли использовать NSManagedObject objectID: использовать в качестве PK для фильтрации записей, объединения таблиц и т. Д.? - PullRequest
0 голосов
/ 23 марта 2012

Нужно ли мне иметь явный атрибут пользовательского идентификатора в качестве PK для каждого из моих основных объектов данных?Мне известно, что данные ядра используют собственный столбец objectID для каждой сущности , и мы можем извлечь его из [NSManagedObject objectID].

Мои предыдущие проекты были выполнены с использованием необработанного SQLite, носейчас я пытаюсь перейти к основным данным.В настоящее время в своем прототипе основных данных я фильтрую записи, используя свой столбец пользовательских идентификаторов:

[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"my_id=%d",some_id_value]];

Просто любопытно, стоит ли мне беспокоиться о пользовательских атрибутах идентификаторов или я должен полагаться на внутренний столбец objectID: передатьздесь и там, использовать для фильтрации, объединения таблиц и т. д.

1 Ответ

2 голосов
/ 23 марта 2012

Вся идея coredata заключается в том, чтобы избегать низкоуровневого sql.Как и в любом современном ORM, вас не должны беспокоить внутренние идентификаторы объектов.Поначалу это может показаться немного неловким (особенно если вы работаете с большим фоном в SQL), но поверьте мне, намного проще управлять таким образом графом объектов.Итак, в итоге, спроектируйте свои NSManagedObjects и отношения и позвольте coredata делать свое волшебство со всеми идентификаторами.

...