Возможно, вы захотите использовать Core Data, и вы, безусловно, будете делать, если между записями есть какие-либо отношения. Без Core Data для управления отношениями сложность приложения может быть снежком.
Это распространенное неправильное представление о том, что поскольку Core Data автоматически обрабатывает много сложностей, неизбежно возникает неизбежная компромисс в производительности, так что, хотя Core Data может быть легко реализована, это должно быть самым медленным решением. Оказывается, это обычно не так из-за огромного количества настроек, которые Apple сделала под капотом. Довольно сложно написать решение, которое может наилучшим образом использовать Core Data для большинства случаев использования.
Я рекомендую вам начать с простейшего решения Core Data, а затем усложнитесь, только если вы протестируете простое решение и найдете его медленным. Я бы начал с грубой принудительной выборки и посмотрел, достаточно ли это. Следующий шаг должен состоять в том, чтобы делать выборки только на одном уровне сущности объекта, например. атрибут name
объекта Person
, затем извлекать всю сущность только при необходимости. Если это еще нужно замедлить, вам придется подумать о реализации какой-либо древовидной структуры в графе сущности (что не сложно).
Преждевременная оптимизация - это корень всего зла. Не пытайтесь принимать решения по оптимизации без данных, полученных при тестировании. Вы потратите больше времени в долгосрочной перспективе. Начните просто и добавьте сложность только тогда, когда это абсолютно необходимо.