Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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
Sql 历史数据模型模式,但可快速查找最新记录_Sql_Design Patterns_Data Modeling - Fatal编程技术网

Sql 历史数据模型模式,但可快速查找最新记录

Sql 历史数据模型模式,但可快速查找最新记录,sql,design-patterns,data-modeling,Sql,Design Patterns,Data Modeling,我正在设计一个数据模型更改,这让我感到必须有更好的方法 我有一个“日志”,每个记录的父实体都有许多条目。大多数时候,我只需要最新的日志条目,但我仍然需要用于审计、报告等的旧数据 现在,我通常的方法是创建一个从父实体到“log”表的一对多连接,然后使用SQL查找最近的记录 但我突然想到:我可以选择数据模型。有更好的设计模式吗?物理实现可以使用按日期分区的日志表。可以使用滚动窗口,将旧分区归档或汇总到某种汇总表中。表访问对应用程序来说是透明的,但是带日期的访问会将查询修剪到适当的分区(在单个分区上搜

我正在设计一个数据模型更改,这让我感到必须有更好的方法

我有一个“日志”,每个记录的父实体都有许多条目。大多数时候,我只需要最新的日志条目,但我仍然需要用于审计、报告等的旧数据

现在,我通常的方法是创建一个从父实体到“log”表的一对多连接,然后使用SQL查找最近的记录


但我突然想到:我可以选择数据模型。有更好的设计模式吗?

物理实现可以使用按日期分区的日志表。可以使用滚动窗口,将旧分区归档或汇总到某种汇总表中。表访问对应用程序来说是透明的,但是带日期的访问会将查询修剪到适当的分区(在单个分区上搜索比在整个表上搜索更有效)

此外,由于日志数据只进入当前分区,旧分区可能会进入“只读”状态。根据rdbms的不同,这可能具有一些优势,例如只需备份一次并排除在以后的备份之外,能够在文件级别进行交换,等等