Почему Базовые Данные настолько трудно предварительно заполнить?

Это больше философский вопрос о проектных решениях Apple, чем вопрос о Базовых Данных.

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

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

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

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

11
задан Richard Slater 30 April 2017 в 11:25
поделиться

1 ответ

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

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

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

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

11
ответ дан 3 December 2019 в 09:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: