所以我有一本诗集。

每首诗都有一位作者,而且一页上可能只有一首诗。
我的数据库结构看起来像这样

诗歌(PoemName,PoemAuthor,pageNumber)

页数(PageNumber,已下载)

我正在尝试编写一种方法,该方法将接受作者姓名,然后下载该作者出现的所有页面(仅当他们尚未下载该页面时)。

在SQL中,我只是这样查询:

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的主键上。

最佳答案

核心数据不是数据库抽象层,它是一个对象图管理框架(以及更多)。您不必担心联接和列。

如果Poem对象与Page对象相关,则应该在模型中定义该关系。我来自SQL背景,考虑到逻辑实体及其关系,而不是基础实现(在任何情况下都不必是Core Data中的SQL)时,我发现更容易理解Core Data。

10-08 14:57