2014-02-20 2 views
0

У меня есть файл JSON http://jsonblob.com/530664b3e4b0237f7f82bdfa Я тянусь от прогноза.Моделирование объектов CoreData с несколькими таймфреймами для данных о погоде

Я немного смущен, как я должен создавать сущности и отношения CoreData.

В приведенной ниже настройке я создал объект Location в качестве родительского объекта и создал отдельный объект для текущего, ежечасно, ежечасно, ежедневно. Однако я решил, что лучше всего хранить всю информацию о погодных данных в одном объекте, поэтому я создал таблицу данных для этой цели и привязал ее к Daily и Now на изображении ниже.

Прежде чем идти дальше, я сделал паузу и хотел бы получить от нее второе мнение. Является ли это правильным способом продвижения вперед?

image

EDIT: На основании ответа WAIN, я изменил мою модель в этот image

ответ

1

В настоящее время Minutely и Hourly добавить небольшое значение, поскольку они не имеют каких-либо признаков или отношений. Также обычно проще добавить атрибут type вместо того, чтобы иметь несколько поднаборов, потому что вы можете легко фильтровать type с использованием предиката при выполнении выборки. Если вы собираетесь добавить больше в будущем, тогда может существовать случай для хранения сущностей.

После того, как сущности обрезаны, у вас есть только Location и Data с отношениями. Вы должны сделать эти отношения двунаправленными, чтобы Core Data мог лучше управлять содержимым хранилища данных. (это относится ко всем отношениям, даже если вы сохраняете сущности, которые у вас уже есть).

Кроме этого, отлично :-)

+0

Привет Вайн, Спасибо за быстрый ответ :) Я обновил свой скриншот, чтобы обеспечить конечные атрибуты, основанные на результатах JSON. Вопрос 1: Когда вы сказали «когда вы собираетесь добавить больше в будущем, тогда может быть случай», вы имеете в виду добавление большего количества таймфреймов? – ilteris

+0

Нет, я имел в виду добавить больше атрибутов. Если все сущности «Местоположение» будут иметь отношение к «данным», тогда вы должны перенести их в объект «Местоположение» (и действительно добавить обратное отношение). Основываясь на вашем текущем содержании модели, я бы просто создал объекты «Местоположение» и «Данные» ... – Wain

+0

Итак, чтобы убедиться, что я правильно вас понимаю, у меня будет два объекта, Местоположение и данные, а в данных я дополнительно тип, который будет иметь временные рамки, и когда я получаю данные из этой таблицы позже, я могу просто предикат на основе таймфрейма, который я прошу (скажем, в настоящее время или почасово). верный? – ilteris

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