CoreData, обработка данных в несколько этапов - PullRequest
0 голосов
/ 08 марта 2011

У меня есть большое количество текстовых файлов, которые мне нужно обработать и поместить содержимое в основные данные.Текстовые файлы содержат много бесполезной информации и могут содержать дубликаты для полезных данных.Поэтому я решил сделать импорт в несколько этапов.

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

Ну, я выполнил первый шаг, и теперь мне нужно двигаться дальше, но я не знаю, как это сделать:

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

Как мне это сделать?Само собой разумеется, что мне нужно создать новую модель данных, но как мне сохранить ее после анализа в виде отдельного файла?

Я думал сделать это как миграцию из одной версии модели данных в другую, но это текстфайлы создаются ежедневно, и это не выглядит хорошей идеей.

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

Заранее спасибо, Тимофей

1 Ответ

1 голос
/ 09 марта 2011

Хорошо, похоже, вам действительно нужны модели данных, каждая из которых имеет свою центральную сущность.Сначала вы обрабатываете необработанный текст и создаете строку, затем вам нужно преобразовать эту строку в реальный объект данных с несколькими атрибутами.Итак, давайте вызовем первый объект Preprocessed, а второй Processed.

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

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

При сохранении объекты Processed попадают в один файл постоянного хранения, а Preprocessed - в другой.Вы можете удалить Preprocessed, не затрагивая объекты Processed и наоборот.

...