This topic created in 1744 days ago, the information mentioned may be changed or developed.
数据修改的时候怎么保留历史数据
| 岗位等级表 |
| 岗位 |
岗位等级
|
基本工资 |
岗位工资 |
基础工资 |
| 总经理 |
1 |
2000 |
4000 |
6000 |
| 2 |
2000 |
3500 |
5500 |
| 3 |
2000 |
3000 |
5000 |
| 总监、副总 |
4 |
800 |
2600 |
3400 |
| 5 |
800 |
2300 |
3100 |
| 6 |
800 |
2000 |
2800 |
| 部门经理 |
7 |
600 |
1800 |
2400 |
| 8 |
600 |
1600 |
2200 |
| 9 |
600 |
1400 |
2000 |
| 部门副经理 |
10 |
500 |
1300 |
1800 |
| 11 |
500 |
1200 |
1700 |
| 12 |
500 |
1100 |
1600 |
| 技术员 |
13 |
400 |
950 |
1350 |
| 14 |
400 |
900 |
1300 |
| 15 |
400 |
850 |
1250 |
| 16 |
400 |
800 |
1200 |
| 科员 |
17 |
400 |
850 |
1250 |
| 18 |
400 |
800 |
1200 |
| 19 |
400 |
750 |
1150 |
| 20 |
400 |
700 |
1100 |
8 replies • 2021-08-05 20:39:48 +08:00
 |
|
1
gimp Aug 4, 2021
新建一个历史表。
|
 |
|
2
saulshao Aug 4, 2021
建一个表,名字叫 基础工资标准_HIST 。对原始表修改或删除的时候,先按照主键把记录写(插入)到新表里面
|
 |
|
3
polyang Aug 4, 2021
直接搞一个历史记录表就行了,表结构可以和基本工资标准表保持一致,然后每次修改基本工资标准表都王历史记录表里插入数据。 PS:总经理的基本工资有点低啊[手动狗头]
|
 |
|
5
rb6221 Aug 4, 2021
一张表怎么行,得多张表啊 一张表只写基本工资和构成,有些补贴项五花八门的,也不是每个人都有,这时候就要用到补贴项表了,同理还有奖励项、罚款项等等。
|
 |
|
6
no1xsyzy Aug 5, 2021 1
「表格」这个叫法很诡异,它包含三种完全不同的数据 一种是 form,正确的叫法是「表单」,但是日常也会叫表格(这可能是因为被简称为「表」之后又错误地拓展) 一种是 table,即每一行是一条记录,每一列是一个字段,是关系型数据库的 table 。 一种是 matrix,矩阵,组织形态上极容易与表格混淆,主要差异在于列的存在、列的数量并不固定,甚至可能是稀疏的。它和文档数据库有一些异曲同工。
如果考虑到补贴项等等五花八门的情况,它肯定是 matrix matrix 用关系型数据库,是以 (行标, 列标, 值) 来存储的,每一个单元格构成一条记录。 这样的话也可以添加一个新的字段 修改时间戳,每次查当前状态时采用 group by (行标, 列标) order by 时间戳 desc limit 1 就可以。 当然,历史记录单独放一张表也可以,注意添加相应的抽象层。
当然,其实还有一种策略是把它写成 csv 并 git commit (
|
 |
|
7
caroline1022 Aug 5, 2021
如果历史记录只用来做简单的记录没有频繁查询结算的需求的话,可以用一条更简单的变更记录表,就是楼上说的 matrix 这种(之前没听说过这个名字,受教了) 因为如果是做跟原表结构一致的历史表的话,维护开销会比较大,当原表结构有变更时,历史表也需要变更结构。更别说换了枚举值之类的情况,就更麻烦了。变更表可以以不变应万变
|
 |
|
8
EscYezi Aug 5, 2021 via iPhone
用一个表,加个可用性字段,修改的时候把旧数据置为不可用
|