При сохранении базы данных Core Data в файл sqlite теряется некоторая информация о рекурсивных / циклических отношениях - PullRequest
1 голос
/ 23 октября 2010

У меня очень простая круговая (или саморефлексирующая) модель данных ядра отношения в моей игре в слова iPhone.Entity Word имеет отношение «один ко многим» с самим собой и указывает на связанные слова:

alt text

Я использую шаблонное приложение NSPersistentDocument Core Data Mac OS X для импорта слов в Core Datasqlite database.

После импорта данных я вижу, что все отношения импортируются правильно (каждое слово имеет хотя бы одно или несколько связанных слов).

Однако после сохранения базы данных вФайл sqlite и повторное его открытие приводит к огромной потере связанных слов указатели (слова все еще там, но отношения пропали - NSLog для них показывает ноль ).Иногда это может привести к потере до 50% информации о связанных словах.

Когда я сохраняю свою базу данных в виде XML или двоичного файла и открываю ее снова, все отношения сохраняются должным образом.

Может кто-нибудь указать мне , почему сохранение в файл sqlite может привести к потере некоторых данных отношений , когда XML и двоичные версии одной и той же базы данных хранят все правильно?

Я заинтересован в sqlite, потому что он считает, что при использовании в iPhone он более эффективен (память) и, конечно, создает значительно меньший размер файла базы данных.

1 Ответ

1 голос
/ 23 октября 2010

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

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