gpt4 book ai didi

mysql - 将 MySQL 中的递归层次结构转换为 Core Data 的最高效方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:05 25 4
gpt4 key购买 nike

编辑 现在我正在编写一个两次通过的算法,首先创建所有的 parent ,然后设置所有的 child (截至 8 月 7 日晚上 9:30)

我想知道使用 SQLite 是否比使用 Core Data 来存储和查询递归层次结构更好,只是为了避免将 sql 行转换为 Core Data 存储所花费的时间。

这是我可以将 sql 行转换为核心数据存储的方法:我在 MySQL 中有一个类别层次结构。每行都有一个categoryIdnameparentId,其中parentId就是categoryId 包含它的类别。我想将此表转换为核心数据。我可以遍历行数组以生成 NSDictionary,其中每个条目都有一个作为父类别名称的键和一个作为子名称数组的值。然后我可以使用递归函数将对象插入到 Core Data 中。

这个过程中每个操作的时间复杂度为:

  • O(n^2)parentId
  • 对 MySQL 条目进行排序
  • O(n) 解析 mysql 行 O(n) 为每个父项找到子项(假定行按 parentId 排序)
  • O(n^2) 通过 id 获取每个类别名称
  • 类似 O(n) 的东西递归地将 NSDictionary 转换为 Core Data 对象,假设 child 的数量总是 < 10 .

最佳答案

"if I'm better off using SQLite than Core Data"

核心数据使用 SQLite。也许我没有得到问题。

您是否建议将 a) Core Data 与 SQLite 一起使用;与 b) Core Data 简单地对存储在 MySQL 中的数据执行 NSFetchPredicate(或你有什么)。 ... 那么问题就变成了 MySQL vs SQLite

需要注意的一件事:您可以将使用 SQLite 的 Core Data 与使用二进制的 Core Data 进行比较——无需更改代码。

关于mysql - 将 MySQL 中的递归层次结构转换为 Core Data 的最高效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18094742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com