java删除sql表中记录,您将如何维护SQL表中的历史记录?
我正在设计一个数据库来存储产品信息,并且我想存储几个月的历史(价格)数据以供将来参考。 但是,我想在设定的时间之后,以最小的努力开始覆盖初始条目,以查找初始条目。 有谁对如何解决这个问题有个好主意? 我最初的设计是要有一个名为历史数据的表,每天,它都会提取活动数据并将其存储到带有时间戳的历史数据库中。 有谁有更好的主意吗? 还是可以看到我的问题在哪里?
#1楼
这个话题比最初看起来要广泛得多。 马丁·福勒(Martin Fowler)对“随时间变化的事物”有一个很好的叙述 。
#2楼
首先,我想评论一下您提出的解决方案。 当然,最弱的部分是,您的间隔之间实际上可能存在多个变化。 这意味着该记录在一天中被更改了三次,但是您只存档了最后的更改。
可能有更好的解决方案,但它必须是事件驱动的。 如果您拥有支持事件或触发器的数据库服务器(例如MS SQL),则应编写触发器代码以在历史表中创建条目。 如果您的服务器不支持触发器,则可以将归档代码添加到您的应用程序中(在“保存”操作期间)。
#3楼
您可以在价格表上放置触发器。 这样,您可以在每次更新或删除事件时将旧价格归档到另一个表中。
#4楼
IMO如果您所需的历史数据是一天结束数据的快照,那么您的方法似乎是正确的-过去,我对隔夜作业(SP)使用了类似的方法,该任务可以获取当天的新数据,对其进行时间戳记,然后使用“删除所有时间戳
如果您需要跟踪所有历史记录更改,则需要查看触发器。
#5楼
我想在设定的时间后,以最小的努力开始覆盖初始条目,以查找初始条目
正如其他人所建议的,我们使用触发器将数据存储在存档表中。 我们的存档表具有AuditDate的附加列,并存储“已删除”数据-即数据的先前版本。 当前数据仅存储在实际表中。
我们根据“删除三个月以上的所有存档数据,其中存在至少一个小于三个月的存档记录;删除六个月以上的所有存档数据”的行,对存档表进行修剪。
因此,如果最近3个月内没有价格变化,您仍会拥有3到6个月前的价格变化记录。
(询问您是否需要使用self-referencing-join的示例来执行删除操作,或使用触发器将更改存储在Archive表中)
java删除sql表中记录,您将如何维护SQL表中的历史记录?相关推荐
- 在 .NET Core 中如何让 Entity Framework Core 在日志中记录由 LINQ 生成的SQL语句
在开发中,我们想在调试中查看EF Core执行的sql语句,可以使用SQL Studio Manager Tools工具,另一种方式是使用EF Core提供的日志.在ASP.NET Core使用Ent ...
- java删除指定索引元素_将对象/元素添加到列表中的Java指定索引处
java删除指定索引元素 We have to create a List and add objects/elements to the List and given indexes in java ...
- mysql 时间盲注语句,sql注入学习记录(5)-基于时间延迟的SQL盲注
上次说到了sql注入中的基于报错盲注的基本的方法. 今天说一说报错盲注 基于时间延时的SQL盲注 使用时间延时注入的场景: 1.不能使用union select 联合查询方式注入 2.有些网站没有回显 ...
- 中超风云2服务器维护,时隔三年“中超”IP强势回归《中超风云2》手游现已开启预约...
本赛季中超联赛已经接近尾声,如何度过联赛的"空窗期"已经成为困扰球迷的新问题.近日胡莱游戏发布的一则消息打破了球迷们的疑虑,经典IP<中超风云>的进阶之作<中超风 ...
- 统计sql server数据库中所有表的记录数
因工作需要查看库里每个表中的记录数,逐表查询太辛苦,故写一过程处理如下: --基本思路为:到系统表查出表名:然后逐表构造sql语句,查询记录数并插入临时表 --创建临时表,保存数据 create ...
- SQL server——sql命令创建、修改、删除表之记录
目录 学习内容.sql命令创建.修改.删除表 创建表 指定所属文件组 修改表 增加一列number 更改列属性 删除某一列 重命名表 删除表 分区表 创建表 添加文件组 分别为其添加数据文件 创建分区 ...
- MySQL多表数据记录查询详解
在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...
- mysql 查询多个记录查询_MySQL多表数据记录查询详解
在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...
- 第七章-单表数据记录查询
7.2 简单数据记录查询 7.2.1 查询所有字段 select *|字段名 from 表名: 7.2.2 查询指定字段 select 字段名 from 表名: 7.2.3查询指定记录 select ...
最新文章
- 程序员在囧途之我是一头牛
- 4位并行加载寄存器设计
- 以编程方式访问Java基本类型的大小
- python之FTP程序(支持多用户在线)
- Eureka的自我保护模式
- 【java毕业设计】基于javaEE+原生Servlet+MySql的酒店管理系统设计与实现(毕业论文+程序源码)——酒店管理系统
- Java 度分秒转经纬度,经纬度转度分秒,度分转经纬度,经纬度转度分
- 计算机大作业论文意义,重庆大学数理统计大作业——论文
- div 垂直居中的六种方法
- alter user mysql_MySQL使用ALTER USER修改密码
- linux双系统无u盘安装教程视频教程,U盘安装Windows和Ubuntu 15.04双系统图解教程
- java中BOM是什么_Java-BOM与DOM对象
- 程序员的键盘 ikbc poker3 使用心得
- 百度地图marker标注上如何加上数字
- ubuntu20编译Gmssl时,“version OPENSSL_1_1_0d not defined”问题的较好解决办法
- Microsoft sql server 获取系统当前日期(时间)
- 老男孩mysql运维dba实战21部完整版_老男孩Mysql DBA高级运维系列课程(16部)
- html5课程总结500字,考试后的反思500字(精选10篇)
- 设置PSPad调用devcpp中的mingw Gcc进行编译;另附PSPad中文版一个BUG的解决方法
- mt7620a上带机量的提高(一)
热门文章
- Android出现:java.lang.NoClassDefFoundError: android/os/PersistableBundle
- Django-(分页器,中间介)
- JDK1.8与spring3.x的不兼容
- 覆盖与隐藏的区别 (一个列子)
- C#取得指定路径下所有目录及文件名称(可递归)
- [转载] python isinstance()方法的使用
- [转载] json字符串转list_Python入门进阶教程JSON操作
- [转载] python程序所需的图片通过base64编码成字符串放在代码中
- [转载] real和imag在python_Python numpy.imag() 使用实例
- tensorflow 模型权重导出