概述:

  • 我有一个使用iOSCoreData应用程序
  • 有一个称为Animal的实体
  • 它具有一组记录LionTigerElephant
  • 我只想将中的一个记录标记为收藏。

  • 具有相同方法的相似实体:
  • 同样,我可以有其他实体,例如CarBike
  • 每个实体都有一组记录。
  • 再次,每个实体应该只有一个收藏记录

  • 原因:
  • 应用程序具有创建新文档
  • 的选项
  • 创建新文档时,将为每个实体填充默认值(通过选择每个实体的收藏记录)

  • 注意:在给定时间只能将一个记录标记为收藏
    我想到的可能模型:
    1.名为isFavourite的字段
  • Animal创建一个名为isFavourite的字段。
  • 仅将其中一行标记为isFavourite标记为true
  • 维护isFavourite的大部分逻辑都在代码中进行管理。

  • 2.称为收藏夹的单独实体
  • 创建一个名为Favourite的单独表,并在其中包含一个虚拟行。
  • 建立一个从FavouriteAnimal的关系,称为animal
  • 这将指向收藏记录。

  • 问题:
  • 解决此问题的首选方法是什么?
  • 还有其他选择吗?
  • 最佳答案

    选择选项2,也许将其称为Config。如果要确保它只是一个单例,请添加一个唯一且只能为零的属性。

    如果反向关系为非nil,则可以编写一个返回true的助手计算的var。

    选项2的主要优点是更改收藏夹的简便性,您不必浏览所有项目即可将其设置为非收藏夹,只需在单例配置中进行更改即可。

    关于ios - CoreData将一条记录标记为收藏(互斥),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48587841/

    10-13 04:27