我正在考虑使用数据日志作为我正在编写的应用程序的数据库后端,因为我看到了允许我在表示之间轻松切换而不必牺牲我收集的数据或编写繁琐的迁移的潜力。
但是,我无法预见我将如何处理不断变化的数据——例如就像用户可更改的密码一样简单。我想用日期标记行:
changepassword(<user>, <passhash>, <date>)
然后使用最新的,但似乎没有办法获得最新的,而不返回所有行并在应用程序端过滤它们。
如何设计数据记录应用程序来处理不断变化的数据?
最佳答案
如果你看http://c2.com/cgi/wiki?QueryLanguageComparison由于传递关系和递归查询,您会看到 Datalog 没有执行聚合、最小值、最大值、前 N 等的能力。
本质上,您必须在应用层进行任何聚合等操作,这远非理想。
但是,至少有一种产品(我必须承认我没有使用或研究过它的细节)扩展了这些情况下的 Datalog 语法:Datomic ,查看“聚合返回单个值”部分。
关于database - 更改数据的数据记录模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18316824/