我的移动应用程序是否需要数据库,还是应该将所有内容保存到文件中?

问题描述

我使用 React Native 创建了一个视频编辑器。我需要选择一种方式将所有用户的项目保存在本地。每个项目都有一个视频文件缩略图(图像)及其当前的 Redux 状态。

我的第一个想法是使用 RNFS 将所有内容保存在文件中。每个项目的文件夹都有一个视频文件、Thumbnails 文件夹和一个 state.txt 文件,其中包含我的应用程序的当前状态(选择的当前文本大小、背景颜色等...)。

我需要像 sqlITE 这样的数据库还是应该将所有内容保存在文件中?我知道我必须将 RNFS 用于视频和图像等二进制数据。但是 state.txt 文件呢?这是一个好主意吗?每个用户都拥有自己的本地数据库的想法对我来说听起来很奇怪。

解决方法

您的 Redux 状态仅代表本地状态。看看https://github.com/rt2zz/redux-persist

这允许您序列化 Redux 状态并使用您提供的任何存储来保存它,但您可以在 react 本机应用程序中使用 asyncStorage。

,

您对视频等使用 RNFS 是正确的。对于 state.txt 中的元数据,在我看来,最好使用 async-storage 或其他离线存储选项(如 Realm

查询它而不是从文件中读取会更高效。