mysql - 我需要保留历史数据,以便用户可以在时间线之间导航
问题描述
我目前正在开发一个数据库,其中包含三个建模如下的表:
procedures (
id int,
name varchar,
desc text,
created_at datetime
);
validations (
id int,
name varchar,
desc text,
created_at datetime
);
procedures_validations (
procedure_id int,
validation_id int,
created_at datetime
);
而且我需要保留历史数据,因为用户可以在时间线之间导航。例如:
2019 年 1 月 1 日名为“Procedure 1”的程序有两个验证,名为“Validation 1”和“Validation 2”。经过一些更改后,相同的程序“程序 1”在 2019 年 1 月 5 日具有三个验证,名为“验证 1”、“验证 3”和“验证 4”。
如果我选择此数据组,在特定日期,我的结果需要是该日期的程序验证。如果我更改验证或过程名称/描述(更新),此信息需要与我在该期间选择数据时的信息相同。
换句话说,我需要保留所有验证和程序的历史记录。
可以选择复制所有数据(具有不同的日期),但我担心性能问题,因为这些表中会有很多记录(插入和重复的数量)。
procedures
ID NAME CREATED_AT
1 A 2019-01-01 21:00:00
2 B 2019-01-02 21:00:00
procedures_validations
id PROCEDURE_ID VALIDATION_ID CREATED_AT
1 1 1 2019-01-02 21:00:00
2 1 2 2019-01-02 21:00:00
3 1 3 2019-01-02 21:00:00
4 1 1 2019-02-05 22:00:00
5 1 4 2019-02-05 22:00:00
validations
id NAME CREATED_AT
1 AA 2019-01-01 21:00:00
2 BB 2019-01-01 21:00:00
3 CC 2019-01-01 21:00:00
4 DD 2019-01-01 21:00:00
解决方案
推荐阅读
- python - 如何在不需要自变量的情况下使对象可访问?
- jekyll - 请给我一个合适的 Jekyll index.md?
- iterm2 - 添加提示背景色 iTerm
- javascript - 从扩展类 JavaScript 中获取静态类名
- python - 提取由一组节点引起的图子图的算法?
- asp.net - 使用 Rotativa 从 HTML 生成 PDF 时页眉重叠内容
- python - 用 C++ 编写的 Python 库,没有运行时可在 Windows 上再分发
- r - r glmmLasso : n %*% s 中的错误 (glmm.rmd#64): 需要数字/复数矩阵/向量参数
- html - 我试图让我的整个网页居中,但它不会让我
- javascript - React - 在点击时遇到问题(React)