database - 更改数据的数据记录模式

标签 database database-design datalog

我正在考虑使用数据日志作为我正在编写的应用程序的数据库后端,因为我看到了允许我在表示之间轻松切换而不必牺牲我收集的数据或编写繁琐的迁移的潜力。

但是,我无法预见我将如何处理不断变化的数据——例如就像用户可更改的密码一样简单。我想用日期标记行:

changepassword(<user>, <passhash>, <date>)

然后使用最新的,但似乎没有办法获得最新的,而不返回所有行并在应用程序端过滤它们。

如何设计数据记录应用程序来处理不断变化的数据?

最佳答案

如果你看http://c2.com/cgi/wiki?QueryLanguageComparison由于传递关系和递归查询,您会看到 Datalog 没有执行聚合、最小值、最大值、前 N 等的能力。

本质上,您必须在应用层进行任何聚合等操作,这远非理想。

但是,至少有一种产品(我必须承认我没有使用或研究过它的细节)扩展了这些情况下的 Datalog 语法:Datomic ,查看“聚合返回单个值”部分。

关于database - 更改数据的数据记录模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18316824/

相关文章:

clojure - 如何构造与DataScript中的引用向量完全匹配的查询?

mysql - 跨两个数据库导入/导出表的某些列并排除 mysql 中的重复电子邮件

sql - 数据库设计帮助 - EAV + Form builder

sparql - RDFox:本地IRI ':born_in'中的前缀名称尚未绑定(bind)

sql - ON 子句中的列是否需要索引?

MySQL:多张表还是一张多列的表?

sql - 图灵完备的图查询语言

database - SQL 服务器 : What does NOUNLOAD and STATS mean in sql command line when restoring a DB?

r - 不同行中共享同一列中相同值的值求和

mysql - 处理交易表中的到期信用?