Базовые данные или ... SQLite - PullRequest
       0

Базовые данные или ... SQLite

0 голосов
/ 04 сентября 2010

Я из среды Ruby on Rails, и я действительно испорчен Active Record там. Я сделал небольшое доказательство концепции проекта с использованием sqlite на iPhone, и я еще больше понимаю, насколько я избалован;)

Для следующего приложения я рассматриваю использование Core Data (так как я верю, что его работа будет близка к Active Record). Мое приложение предоставит пользователю много данных для использования (со многими связанными таблицами), и я намерен обновлять эти данные на регулярной основе (каждые 2-3 месяца). С sqlite это было бы так же просто, как загрузить файл sqlite, это так же просто, как использовать Core Data?

Ответы [ 2 ]

2 голосов
/ 04 сентября 2010

Базовые данные очень похожи на Active Data Record.Основное отличие состоит в том, что Active Data превратилась из хранилища SQL в код объектов приложения, тогда как Core Data превратилась из объектов приложения во множество хранилищ.Короче говоря, Active Data не работает без хранилища SQL, но Core Data прекрасно работает без какого-либо хранилища.

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

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

Даже если это сложнее, простота интеграции Core Data в остальную часть приложения обычно окупается.

Если вы думаете о написании и поддержке нескольких приложений для iOS, то вам стоит потратить время на то, чтобы пройти курс обучения Core Data.

1 голос
/ 04 сентября 2010

SQLite - это постоянное хранилище, Core Data - граф объектов.Они не совсем одно и то же - хотя Core Data может жить поверх SQLite.

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

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