所以我有一本诗集。
每首诗都有作者,页面上可能有一首以上的诗。 我的数据库结构看起来有点像这样
诗歌(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的主键。
答案 0 :(得分:1)
核心数据不是数据库抽象层,它是对象图管理框架(以及更多)。您不应该关注连接和列。
如果Poem对象与Page对象相关,那么您应该只在模型中定义该关系。我来自SQL背景,当我考虑逻辑实体及其关系时,我发现Core Data更易于理解,而不是底层实现(在任何情况下都不必是Core Data中的SQL)。