小编Seb*_*čić的帖子

Firestore:文档的版本历史记录

我正在寻找一种构造Firestore数据库的适当方法,以处理单个集合中文档的多个版本历史记录。

例如:我有一个集合命名提供其有多个文件对应于多重优惠。对于这些文档中的每一个,我都希望有更改历史记录,例如Google文档中的更改。

由于文档仅支持直接添加字段或嵌套另一个集合,因此我想到了以下结构:

collections: offers
 - documents: offer1, (offer2, offer3, ...)
     - fields populated with latest version of the offer content
     - nested collection named history
         - nested documents for each version (v1, v2, v3), which in turn have fields specifing state of each field in that version. 
Run Code Online (Sandbox Code Playgroud)

由于我拥有最新状态,而不是嵌套收集历史记录,因此这似乎有点复杂。在平面结构中,数组中的最新项是最新状态,还是类似的状态,这可能是某种原因吗?

另外,单击按钮即可生成历史记录状态,因此我不需要将所有可能的更改保存在历史记录中,而只需在用户保存时添加快照即可。

我想将Firebase用作我的数据库,因为我还需要其他一些东西,因此我暂时不考虑其他解决方案。

谢谢!

编辑:根据亚历克斯的回答,这是我对此的另一种看法。

Firestore-root
   |
   --- offers (collection)
        |
        --- offerID (document)
        |   (with fields populated )
        |        |
        |        --- history (collection) //last …
Run Code Online (Sandbox Code Playgroud)

data-modeling firebase google-cloud-firestore

6
推荐指数
1
解决办法
1516
查看次数