如何解决与基于pouchdb的系统客户端进行数据同步:“已删除”标志是否有解决方法?
我打算在后端使用rxdb + hasura / postgresql。例如,我在读this rxdb page,但实际上需要可同步实体具有deleted
标志。
第一季度(主要问题)
- 是否有任何个点可以最终硬删除?必须满足什么条件-例如,我可以简单地使用“ X个月以上”,然后强制我的应用仅显示X个月以下的数据吗?
- 这样的硬删除(如果可能的话)最好直接在中央数据库中执行,因为这将成为事实的源头?客户端是否会有我没有预见/理解的影响?
我预计deleted
的数量在我的应用程序中迅速增长,我不想永远存储所有这些额外数据。
第二季度(奖金/好奇)
解决方法
最终,这取决于您的特定业务/产品所决定的决定,该决定涉及您要在系统中保留删除的实体多长时间。对于某些应用程序,重要的一点是始终保留已删除内容的历史记录,甚至对作为一种分类帐或历史记录存储的记录进行单独修订。您必须对要删除的实体保留多长时间做出判断。
如果您还没有的话,我建议您还添加一个deleted_at
列,然后可以轻松地利用Hasura的新Scheduled Triggers functionality之类的工具来执行重复性作业,该作业会完全删除早于无论您的门槛是多少。
您还可以利用Hasura的权限系统来确保已删除的行不会返回给客户端。 documentation and examples提供了使用软删除和Hasura的方法
对于第二个问题,检查记录中的已删除标志肯定比尝试对整个数据集进行比较以查找现在缺少的东西要快得多。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。