Почему мне нужно 2 или более моделей Core Data?

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

Мое приложение и приложение для iPad и еще одна версия для iPhone, у iPad есть 3 основных содержания, у iPhone есть только тот, который также находится на iPad, поэтому, изолируя это в другую базовую модель данных, возможно, поддерживая изменения эта модель в моих двух приложениях будет проще.

Хотя у меня есть пара объектов, которые мне нужны в обоих, поэтому я мог бы просто скопировать их или иметь одну большую модель.

Любые предложения?

В любом случае, это, конечно, не общая ситуация, какие другие сценарии могут привести к созданию нескольких моделей Core Data?

Ответ 1

Иногда имеет смысл хранить разные данные в разных магазинах. Например, приложение, работающее подобно каталогу продуктов, может иметь один магазин, который является базой данных продукта, а другой - отслеживает пользовательские избранные, текущие заказы и историю. Это упрощает обновление базы данных продукта без ущерба для пользовательских данных и для резервного копирования пользовательских данных без копирования всей базы данных продукта.

Другой сценарий, в котором вы должны использовать несколько хранилищ, - хранить один и тот же тип данных. Например, приложения на основе документов обычно создают отдельный хранилище для каждого документа - хранилище может быть документом.

Обновление:. Я написал выше адреса, используя отдельные магазины, но вы спросили об использовании отдельных моделей. Основные данные фактически позволят вам определить отдельные модели, а затем объединить их все вместе во время выполнения для использования в одном магазине (или нескольких магазинах, если на то пошло). Поэтому, чтобы быть понятным, модель определяет сущности и отношения между ними. Хранилище - это место, где данные фактически сохраняются с использованием схемы, определенной в модели. Вы можете сломать сложную модель на несколько более мелких моделей, просто чтобы упростить задачу и помочь в переносе ваших данных при изменении своих моделей с течением времени, или вы можете использовать несколько моделей и держать их в отдельности, потому что вы планируете использовать разные магазины, которые содержат различные типы данных, как описано выше.

Ответ 2

Я бы рекомендовал использовать только 1 базовую модель данных. Если вы их отделите, вы не сможете использовать многие функции Core Data, такие как отношения (между объектами в хранилище данных) и т.д. Даже если вы не видите нужды прямо сейчас, вы можете прийти с идеей добавить к нему приложение, которое ему понадобится.

Вы все еще можете использовать одну и ту же базовую модель данных для iPad и iPhone, просто игнорируйте части, которые вы не используете iPhone (пока вы не получите запросы функций, чтобы добавить недостающие части, что, скорее всего, будет). Тогда вы все настроитесь и у вас уже есть данные.

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

Удачи вам в этом приложении!