首页 > 解决方案 > 与基于 pouchdb 的系统客户端同步数据:“已删除”标志是否有解决方法?

问题描述

我打算在后端使用 rxdb + hasura/postgresql。例如,我正在阅读这个 rxdb 页面,它要求可同步的实体有一个deleted标志。

Q1(主要问题)

我预见到deleted我的应用程序中的数量会迅速增长,我不想永远存储所有这些额外的数据。

Q2(奖金/只是好奇)

标签: postgresqlhasurarxdbpouchdb-adapter-localstorage

解决方案


最终,它归结为由您的特定业务/产品通知的关于您希望在系统中保留已删除实体多长时间的决定。对于某些应用程序,重要的是始终保留已删除内容的历史记录,甚至是对存储为分类帐或历史记录的记录的个别修订。您必须判断要保留已删除实体的时间。

如果您还没有添加一列,我建议您也添加一deleted_at列,然后您可以轻松地利用 Hasura 的新计划触发器功能来运行重复作业,该作业完全删除早于您的阈值的记录。

您还可以利用 Hasura 的权限系统来确保已删除的行不会返回给客户端。有关于使用软删除和 Hasura 的方法的文档和示例

对于您的第二个问题,检查记录上的已删除标志肯定比必须尝试比较整个数据集以查找现在丢失的东西要快得多。


推荐阅读