Firebase:如何有效跟踪用户/记录更改历史记录

时间:2016-03-19 17:25:21

标签: database firebase database-schema

[很多关于SO的讨论,但几乎所有关于SQL的讨论都是如此,所以我的问题很多都是N / A ]

我正在使用react / reduxfirebase后端和&编写CRUD应用。 AWS lambda在必要时发挥作用。

我的用户会有兴趣了解已更改的内容以及更改记录的时间,但我正在努力寻找有效的方法。

我目前的计划是保留一系列记录更新"包含previousValchangeDateuserMakingChange等字段的记录。 Redux有一些很棒的中间件,可以在客户端使这一点相当简单。

img是我想到的数据库架构。 Firebase强调非常扁平的数据结构,我希望修订历史按需加载,与用户/记录分开,因此revision histories的中间表。

所以,我的问题:

  1. 修订历史记录系统如何处理不断膨胀的存储要求?
  2. 这样做的方法有点复杂吗?我认为必须有一个行业的最佳实践'对于这样的事情。
  3. a rough sketch of the schema i'm considering

1 个答案:

答案 0 :(得分:5)

如果您愿意放弃Firebase,那么Datomic将非常适合您要做的事情。它使用Clojure持久性数据结构中的结构共享技术来创建有效的数据副本,这些数据与原始版本共享尽可能多的结构。

至于能够恢复到过去的版本,我会说Datomic可能是行业标准的解决方案。但是,这些技术并非特定于Datomic,有些工作,您也可以使用Firebase实现它们。

然而,对于它的价值,我认为除非你发现你的Firebase实例超出了规模限制,否则不值得去解决问题。相反,我建议采用绝对最简单的方法。

保持数据平稳,并将每个实体视为值列表。每次要添加新修订时,请将其推送到最后。要还原,请从堆栈中弹出所需数量的值。编写一些处理所有引用的Firebase包装器并不算太多工作。

或者,如果您感觉超级雄心勃勃,可以尝试将datascript与ClojureScript的持久数据结构相结合,然后将它们序列化为JSON,然后将它们存储在Firebase中,然后像使用Datomic那样使用它。

相关问题