我正在开发一个单页面应用程序,它依赖 PouchDB 来存储用户使用应用程序登录时的状态。我的申请状态包括用户数据,如电子邮件地址,名字等。
我是PouchDB的新手以及在浏览器中存储数据的概念。我想知道在处理诸如从给定用户的PouchDB中删除/清除数据等问题时最佳做法是什么......
当用户退出或关闭并退出SPA时,将数据/文档保存在PouchDB / IndexedDB中(与删除它相比)的优缺点是什么?
换句话说,在用户注销时保留数据和用例以删除它的示例用例是什么?
答案 0 :(得分:1)
这主要取决于用户体验与数据的新鲜度。
PouchDB旨在允许应用程序在本地保存数据并将其与后端系统同步。 (目前支持CouchDB和Couchbase,作为后端服务器的示例。)它还旨在允许多个客户端进行更改。
大多数数据库都希望中央系统具有高可用性。它们旨在立即解决冲突。使用PouchDB,您可能会遇到在客户端写入时无法解决的冲突。
核心思想是,您的应用有时会使用较差或无网络连接。在本地保存信息意味着即使在这些情况下,您的应用程序也可以继续工作。
主要权衡:
Keep
Delete/Purge
注意PouchDB是NoSQL数据库。 NoSQL数据库不能强制执行" ACID"合规性。这意味着如果您的应用需要将数据更改为原子(事务性),则这是错误的解决方案。
有很多用例最终一致的数据很好。这可以像拥有一个客户端和后端系统一样简单"同意"什么是正确的。或者它可以是一个复杂的系统,有多个编写者进行最终传播和集成的更改。
还需要考虑安全性。您是否会为用户提供一种方法来删除敏感数据,以防他们在共享计算机上使用此类内容。
作为最后一点,您可能希望首先离线搜索'作为应用程序开发的一种方法。
答案 1 :(得分:1)
用户注销后删除数据的典型用例可能是:
注意:最好不要在PouchDB中存储上面提到的数据,但这不是重点。
注销后保存数据的用例: