Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在数据库中存储截至日期的对象图_Database_Database Design_Temporal Database - Fatal编程技术网

Database 在数据库中存储截至日期的对象图

Database 在数据库中存储截至日期的对象图,database,database-design,temporal-database,Database,Database Design,Temporal Database,我将尝试保持这个问题数据库的不可知性,但我有一个有趣的问题需要解决,我想我应该为建议和反馈敞开大门 我需要能够从提要源下载数据并将其存储在某种数据库中,数据需要合并到现有数据中,并且我需要能够查询任何给定日期的数据。我想谈的是粗体部分 从本质上讲,这个问题归结为,我需要将对象图持久化到OLTP数据库,并能够临时查询它 在一个表的简单情况下,这个问题非常简单,您有一个日期范围,指示记录的有效时间跨度,然后传入一个“截止日期”范围,只选择对该时间点有效的行。当您有多个表时,问题就会出现 让我们假设有

我将尝试保持这个问题数据库的不可知性,但我有一个有趣的问题需要解决,我想我应该为建议和反馈敞开大门

我需要能够从提要源下载数据并将其存储在某种数据库中,数据需要合并到现有数据中,并且我需要能够查询任何给定日期的数据。我想谈的是粗体部分

从本质上讲,这个问题归结为,我需要将对象图持久化到OLTP数据库,并能够临时查询它

在一个表的简单情况下,这个问题非常简单,您有一个日期范围,指示记录的有效时间跨度,然后传入一个“截止日期”范围,只选择对该时间点有效的行。当您有多个表时,问题就会出现

让我们假设有两个表,Order-*Item

当我们查询订单时,我们可以对item表应用相同的截止日期更改。一切都很好,但是如果我们想要修改订单,会发生什么呢?现在我们需要复制订单行,设置日期范围,以便新行上的“有效开始”和新行上的“有效结束”设置为“现在”。我们还必须复制项目,或者如果我们更改了模型,则复制对项目的引用

即使在这种简单的情况下,事情也开始变得复杂起来

我的问题更加严重,因为我有一个自引用的对象图,所以要使用上面的模型,您需要Order-*Item-*Order

你会怎么做?当您需要对行和时态查询进行版本控制时,如何构造数据库?

在当时,是时态数据库的最佳信息来源。1999年出版,版权归作者所有,链接指向该书的PDF版本。查找更多他的出版物,以及CD-ROM压缩内容的链接