Присоединение coreData к атрибутам, отличным от первичного ключа - PullRequest
1 голос
/ 08 января 2012

Итак, у меня есть книга стихов.

У каждого стихотворения есть автор, и на странице может быть более одного стихотворения.Моя структура базы данных выглядит примерно так

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

В SQL Iбудет просто запрос, как это:

SELECT poems.pageNumber 
FROM poems 
JOIN pages ON Poems.pageNumber = pages.pageNumber 
WHERE poems.PoemAuthor='foo' AND downloaded=1
GROUP BY pages.pageNumber;

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

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

1 Ответ

1 голос
/ 08 января 2012

Базовые данные - это не уровень абстракции базы данных, это инфраструктура управления графами объектов (и многое другое).Вы не должны беспокоиться о соединениях и столбцах.

Если объект Poem связан с объектом Page, то вы должны просто определить это отношение в вашей модели.Я пришел из SQL-среды, и мне кажется, что Базовые данные легче воспринимать, когда я думаю о логических сущностях и их отношениях, а не о базовой реализации (которая в любом случае не обязательно должна быть SQL в Базовых данных).

...