产品参考 / PR2 · 数据归属

游客、登录与切换账号时,项目数据分别放在哪里

SlateX 把游客状态与登录状态的数据放在两份分开的物理数据库里,它们使用同一套数据模型,但不是同一个文件。游客库只承担未登录状态下的记录;账号库承担登录后的记录,并且只有账号库配置了云端私有库。账号切换时,归属也不是按“当前谁登录,全部记录就归谁”处理,而是逐条按 Apple 身份条件判断。

分开的库解决的是“数据落在哪一边”的问题,不等于替任何安全、隐私或跨设备结果作保证。

游客库与账号库是两份文件

游客库和账号库都位于应用支持目录下的专用子目录。这个位置不是用户在“文件”App 里直接浏览的 Documents 位置,因此不能把“找到数据库文件”理解成已经拿到全部媒体,也不能把单独备份数据库文件写成完整备份方案。

两份库共用同一个数据模型实例,所以项目、场次、条记录与连戏素材等对象仍按同一套结构表达。区别在于存储落点:游客数据进入游客库,登录后的账号数据进入账号库。代码只给账号库配置了云端私有库;游客库在整个生命周期里没有任何云端上传配置。这里说的是代码配置事实,不是“已经在设备上验证过不会上传”的测试结论。

照片和视频在库里不是同一种东西

照片的数据本体作为数据库中的二进制数据保存,因此它跟着数据库记录走。视频不同:数据库里保存的是一条指向本地文件的路径,而不是把视频文件本体放进同一个数据库字段里。

这个差异意味着照片记录与视频路径在跨设备时不能被当成同一种机制理解。代码能说明数据库里分别保存了什么,却不能据此承诺“换设备后一定能拿到”或“一定拿不到”。接收方只能把它看成两种不同的存储形态,而不是把数据库同步等同于媒体文件已经到达。

数据库里有一条媒体记录,不代表对应的本地文件一定已经出现在另一台设备上。

登录以后,归属不是简单地整库换主人

账号侧的数据归属会逐条按 Apple 身份条件判断。项目及其可达记录需要能落到当前身份对应的归属路径上,不能因为某个账号此刻处于登录状态,就把库里所有东西一概视为这个账号所有。

这个判定也影响账号切换时能不能继续读、迁或删一条记录。换句话说,登录状态只是进入哪一个数据环境的条件之一;具体记录属于谁,还要看记录自身能够沿哪条关系链回到对应身份。

游客数据只在主动登录时迁移

游客记录转入账号库不是自动恢复登录时顺便发生的。只有用户主动点登录的那条路径允许启动游客迁移;应用从已有凭据恢复登录时,不会把游客库自动搬过去。

迁移本身分阶段执行:先从游客库做快照,再把可迁移的对象写入账号库,随后使用新的上下文逐属性、逐关系和逐归属进行验证。只有验证通过,来源侧的游客记录才会清理。任一阶段失败,来源侧不会进入清理步骤。

验证不通过就保留原件,宁可不动也不动一半。 这句话描述的是当前迁移顺序,不表示网络、云端或其他设备已经完成任何额外验证。

这页能回答到哪里

这套机制能回答的是:游客与账号记录分别落在哪个库,哪个库配置了云端私有库,媒体在数据库里以什么形态出现,以及主动登录时游客数据如何经过核对后迁移。它不能证明特定加密模型或全范围隐私保证,也不能证明任何人都无法读取,更不能把代码配置写成已经完成的设备级安全审计。

如果问题变成“另一台设备是否会在同一时刻显示同一份媒体”“删除 App 后能否恢复”或“某项法规是否因此满足”,本篇只描述本机工程目录的实际组织方式,不对这些情况外推。

FAQ

游客状态和登录状态用的是同一个数据库吗?

不是。两种状态使用分开的物理数据库文件,但共用同一个数据模型实例;游客记录进入游客库,登录后的记录进入账号库。

游客库也会进入云端私有库吗?

当前代码没有为游客库配置云端上传;只有账号库配置了云端私有库。这个说法描述代码配置,不等于已经用设备测试证明了所有网络行为。

为什么照片和视频不能用同一种跨设备预期来理解?

因为照片的数据本体保存在数据库字段里,而视频在数据库里保存的是本地路径。两者的存储形态不同,不能仅凭数据库记录存在就推断另一台设备已经拿到对应文件。

游客数据什么时候会转入登录账号?

只有用户主动发起登录时才允许启动游客迁移;系统恢复已有登录状态不会自动迁移。迁移经过写入与验证,验证不通过时来源记录会保留。


上海智独教育科技有限公司 — SlateX。以上数字截至 2026-09-24。

沪ICP备2026001245号-1

上海智独教育科技有限公司

上海市嘉定区澄浏公路52号39幢2楼J

support@slateprotocol.com