我正在使用 Core Data 和多对多关系:一个建筑物可以有多个部门,一个部门可以在多个建筑物中。之前使用过数据库,我不确定如何在 Core Data 中实现这一点,但我在 Core Data Programming Guide 中找到了这一点:
如果您有数据库管理背景并且这引起您的担忧,请不要担心:如果您使用 SQLite 存储,Core Data 会自动为您创建中间连接表。
但是,实际上并没有任何数据完整性。我尝试插入一些建筑对象,它们现在只有一个属性(数字),并且每次我设置它相关的部门对象(关系)。这导致数据库包含具有相同建筑物编号的多个建筑物对象,所有这些都与不同的部门对象相关。理想情况下,每个建筑物编号将有一个对象,其中包含位于其中的所有不同部门。
所以,我的问题是:Core Data 能否以某种方式保持数据完整性,或者我应该在插入之前检查具有该编号的建筑对象是否已经存在?看起来我必须手动检查它,但如果 Core Data 可以为我做这件事会很酷。