database - 从不就地删除或更新数据的通用数据库

标签 database immutability survey database-versioning datomic

<分区>

数据管理方法给我很大启发 advocated by Rich Hickey ,并在 Datomic 中实现,其中数据永远不会就地发生突变,所有版本都始终保留并可查询,并且时间是一流的概念。

当然,有符合该描述的专用数据库,例如 Git 或任何其他源代码控制系统。问题是是否有任何(或多或少)通用的关系型、图形型、层次型、文档型或任何其他风格的 DBMS 可以有效地用于电子商务 Web 应用程序。或者 Datomic 是唯一的选择吗?

最佳答案

有一种设计系统的方法,其理念是永不删除或改变数据,称为事件溯源。基本上,这个想法是存储改变系统状态的事件(或事实),而不是状态的快照。事件的历史可以在以后重播,以产生特定目的的预测,以反射(reflect)任何时间点的状态。为不同目的构建的多个投影可以在系统中共存。可以在以下网站上找到更多信息:

它与您所描述的一致,但不仅仅是一个数据库模型,事件溯源和命令查询责任分离 (CQRS) 规定了一种设计整个系统(包括数据库和业务逻辑层)的特殊方法。

有一些框架遵循这种方法,例如:

虽然这不能直接回答您的问题,但它可能会提供对问题的不同看法。

关于database - 从不就地删除或更新数据的通用数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13508035/

相关文章:

sql - 查询当前表时,Postgresql 插入触发器变慢

sql - 根据不同表中的列从 SELECT 中删除行

c# - ExecuteReader() 后未更新输出参数

java - 防止 Java 泛型类型的可变性

database - ORA-01219 : database not open: queries allowed on fixed tables/views only

java - 不可变集合实现

python - 如何在 MongoDB 中创建字段后使其不可变?

r - 找到变量向量的加权频率和se

r - 分析具有多个合理值的复杂调查设计

r - 在 R 中的 svyplot() 中用颜色填充气泡(调查包)