<分区>
数据管理方法给我很大启发 advocated by Rich Hickey ,并在 Datomic 中实现,其中数据永远不会就地发生突变,所有版本都始终保留并可查询,并且时间是一流的概念。
当然,有符合该描述的专用数据库,例如 Git 或任何其他源代码控制系统。问题是是否有任何(或多或少)通用的关系型、图形型、层次型、文档型或任何其他风格的 DBMS 可以有效地用于电子商务 Web 应用程序。或者 Datomic 是唯一的选择吗?
<分区>
数据管理方法给我很大启发 advocated by Rich Hickey ,并在 Datomic 中实现,其中数据永远不会就地发生突变,所有版本都始终保留并可查询,并且时间是一流的概念。
当然,有符合该描述的专用数据库,例如 Git 或任何其他源代码控制系统。问题是是否有任何(或多或少)通用的关系型、图形型、层次型、文档型或任何其他风格的 DBMS 可以有效地用于电子商务 Web 应用程序。或者 Datomic 是唯一的选择吗?
最佳答案
有一种设计系统的方法,其理念是永不删除或改变数据,称为事件溯源。基本上,这个想法是存储改变系统状态的事件(或事实),而不是状态的快照。事件的历史可以在以后重播,以产生特定目的的预测,以反射(reflect)任何时间点的状态。为不同目的构建的多个投影可以在系统中共存。可以在以下网站上找到更多信息:
它与您所描述的一致,但不仅仅是一个数据库模型,事件溯源和命令查询责任分离 (CQRS) 规定了一种设计整个系统(包括数据库和业务逻辑层)的特殊方法。
有一些框架遵循这种方法,例如:
虽然这不能直接回答您的问题,但它可能会提供对问题的不同看法。
关于database - 从不就地删除或更新数据的通用数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13508035/