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