在 Firestore 中对软删除数据进行建模

Kda*_*ilk 3 nosql firebase google-cloud-firestore

我试图通过在每个文档上设置一个deletedOn时间戳或空字段来实现软删除。但到目前为止,它使我的查询变得复杂,这让我感到有些头痛,因为我需要在每个查询中过滤掉这些文档。 deletedOn在 UI 中公开以“永久”删除,但如果客户寻求支持,我们只需将该字段设置deletedOn回 null 即可“恢复”已“删除”的数据。有没有更好的方法在 NoSQL 数据库中对此进行建模?我更倾向于拥有单独的收藏?例如contacts contacts_deleted,当 acontact被删除时,将其移动到另一个相应的集合中。但我还是 NoSQL 新手,所以我不知道这是否会更好

Kda*_*ilk 7

我最终为未删除和已删除的文档创建了两个不同的集合,contacts然后contacts_deleted创建了一个 firebase 函数,该函数监视集合中的删除contacts并将文档复制到contacts_deleted集合中。这样,移动已删除文档的责任就不会落在客户端身上。