gpt4 book ai didi

ios - CoreData 将一条记录标记为最爱(互斥)

转载 作者:搜寻专家 更新时间:2023-11-01 06:30:08 27 4
gpt4 key购买 nike

概述:

  • 我有一个使用 CoreDataiOS 应用程序>
  • 有一个名为Animal的实体
  • 它有一组记录LionTigerElephant
  • 我想将只有一个记录标记为收藏。

具有相同方法的相似实体:

  • 同样,我可以有其他实体,例如 CarBike
  • 每个实体都有一组记录。
  • 同样每个实体应该只有一个最喜欢的记录

原因:

  • 应用程序可以选择创建新文档
  • 创建新文档时,将为每个实体填充默认值(通过选择每个实体的收藏夹记录)

注意:在给定时间只能将一条记录标记为收藏

我想到的可能模型:

1。名为 isFavourite 的字段

  • Animal 中创建一个名为 isFavourite 的字段。
  • 仅将其中一行标记为 isFavouritetrue
  • 维护 isFavourite 的大部分逻辑都在代码中进行管理。

2。称为收藏夹的独立实体

  • 创建一个名为 Favourite 的单独表格,并在其中添加一个虚拟行。
  • 建立从 FavoriteAnimal 的关系,称为 animal
  • 这将指向最喜欢的记录。

问题:

  1. 解决此问题的首选方法是什么?
  2. 还有其他选择吗?

最佳答案

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

如果反向关系不为零,您可以编写一个返回 true 的辅助计算变量。

选项 2 的主要优点是更改收藏夹的简单性,您不必扫描所有项目以将它们设置为非收藏夹,只需在单例配置上更改它即可。

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

27 4 0