Подтвердить что ты не робот

Почему Core Data так сложно препопыляться?

Это более философский вопрос о решениях Apple, чем вопрос о Core Data.

Почему в мире полезно иметь модельную систему, которая так трудно препопыляться? Каковы преимущества? Я знаю, что вы можете заставить свою программу генерировать файл sqlite и редактировать его вручную, но, насколько я могу судить, вы не можете этого сделать, если у вас есть какие-либо отношения вообще.

Я сравниваю это с парадигмой MVC, используемой в рельсах, что, по-видимому, имеет больше смысла. Модели в рельсах обеспечивают аналогичный уровень абстракции для Core Data (из того, что я могу сказать), но они также позволяют вводить все, что вы хотите, в свою базу данных вручную (или через script).

Проблема с Core Data заключается в том, что: поскольку рельсы, похоже, доказывают (мне), что вы можете иметь отличную абстракцию модели из базы данных, сохраняя при этом несколько удобных методов для ее преобеспечения, какие возможные преимущества делает удаление этой возможности? Являются ли Core Data более эффективными? Является ли трудность, связанная с препопуляцией, просто побочным эффектом других вариантов дизайна, и если да, то почему не было учтено предварительное заполнение?

(Отказ от ответственности за то, что я искренне заинтересован в рассуждениях по поводу этих вариантов, и хотя мой пост может это предложить, я действительно не ищу дискуссию "Модели в Rails против основных данных".)

4b9b3361

Ответ 1

Поскольку базовые данные являются НЕ базой данных. Это графический объект, который, по-видимому, сохраняется на диске, и один из этих форматов сохранения является базой данных. Это означает, что вам нужно посмотреть на него в обратном ПО.

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

Мое мнение о предпопуляции состоит в том, что Core Data разрабатывается как замкнутая система. Вы можете использовать Core Data, чтобы легко заполнить файл данных. Нетрудно заполнить файл SQLite Core Data, чем писать script для перевода данных Oracle в формат CSV.

Если вы останетесь в пределах Cocoa и Core Data, то это совсем не сложно. Вы пишете приложение командной строки или приложение для редактирования и импортируете данные. Из PoV программиста Cocoa это тривиальная задача, которая занимает всего несколько минут.