【发布时间】:2018-07-28 00:34:40
【问题描述】:
我将文件夹结构存储在核心数据中。它反映文件/文件夹的本地结构,并且每当用户在查找器中执行任何操作(例如重命名/删除/创建)时都需要更新数据库。
我已经定义了单个实体节点(名称、完整路径、类型(目录/文件))。
从节点实体到自身的对多关系children,删除规则设置为级联
从节点实体到自身的一对一关系parent,删除规则设置为无效。
并将它们设置为彼此的反向关系。
我在用户重命名文件夹时遇到问题。目前我正在更新节点并添加了通过父路径和子名称构造完整路径的方法。
但有时我需要通过路径获取节点,重命名后文件节点不会更新。我不想在重命名后遍历文件夹内的所有文件。一些文件夹包含 100k 个节点。
谁能帮助我或建议我更好的设计?
【问题讨论】:
-
为什么要在每个节点上存储完整路径?
-
@TomHarrington 这是旧代码。我们有所有文件/文件夹的平面结构。现在我已经添加了父子关系,但是当用户重命名文件夹时我仍然面临同样的问题。
标签: ios macos sqlite core-data