core-data - Core Data 与相似对象的多重关系,不能反转
问题描述
我有一个 Entity Storm
,它有两个一对多关系,“历史”和“预测”这两个都是 NSSet,其中包含一个StormPosition
包含时间、纬度和经度的实体。
我能够构建它,但是虽然我可以设置“历史”和“预测”关系,但它们似乎不能都指向类型StormPosition
的对象,因为反向关系不能都指向风暴实体。
我认为这是因为当我这样做时:
myStormPosition.owner = self
它需要知道将其放入哪个 NSSet(历史或预测)。
我需要将这些混合成一个“轨道”关系吗?我宁愿不要,因为不必检查日期属性就可以将一组用于历史记录和一组用于预测。
此外,在程序的其他地方,我希望能够只使用一个StormPosition
类型而不是一个HistoricPosition
和PredictedPosition
类型,这实际上是相同的,但是会导致困难的类型转换,除非我给他们一个相同的父类。
解决方案
这对我来说确实是一种罕见的情况,您可以从使用父实体/类中受益。请注意这一点,因为两者的所有实例都HistoricPosition
将PredictedPosition
在持久存储中为两者的所有属性占用空间(因为它们有一个共同的父级)。
每次风暴会有多个预报吗?例如,第 1 天的预测轨迹,第 2 天的预测轨迹,……?
不过,它确实感觉像是一个重量级的解决方案。也许是包含位置和时间戳的协议?完全摆脱 Position 实体的概念?预测位置有一个有效时间,以及它发布的时间,而历史轨迹位置只有它被记录的时间。
推荐阅读
- python - python错误抑制信号18到win32
- reactjs - 从多反应选择中获取特定的选定值
- keras - 具有输入内核和偏差的自定义层
- mysql - 通过跳转服务器连接 MySQL(Sequel Pro 或 Workbench)
- python - 类方法交换保持旧类“自我”?
- ruby-on-rails - StaticInjectorError(AppModule) 没有 ComponentFactoryResolver 的提供者
- javascript - 如何将单元格边框添加到 SheetJS .xlsx 生成的文件?
- sql - 在cloudera中,天,小时和分钟的时间戳差异?
- vba - 在 VBA 中将图片上传到 file.io (HTTP Post)
- rest - 如何扩展 Composer REST Server