现在有个业务数据表 A,大概有一百多个字段,页面表单也呈现的是这一百多个字段。 要求:每次用户修改了其中的字段,都要发送提醒给管理员。管理员要知道修改了哪些字段。
这种是不是要多加一百多个字段标识是否修改过?
数据库:mysql
1
LYEHIZRF 2020-06-09 15:47:04 +08:00
这不是加一张操作表的事儿吗
|
2
LYEHIZRF 2020-06-09 15:48:13 +08:00 1
| actions | CREATE TABLE `actions` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `action_module` varchar(32) NOT NULL COMMENT '操作模块', `action_type` varchar(32) NOT NULL COMMENT '操作类型', `operations` json NOT NULL COMMENT '操作内容 json', `username` varchar(32) NOT NULL COMMENT '用户名', `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间戳', `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `ix_created_at` (`created_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='操作记录表' | |
3
p1094358629 2020-06-09 15:53:21 +08:00
在修改的接口里,直接调三方接口推送 /短信啥的不就行了,干嘛要动表
|
5
vindac OP @p1094358629 这里的管理员是一个概念,可以理解成用户的上级领导。不涉及到第三方以及短信。
|
6
tanranran 2020-06-09 16:49:11 +08:00
|
7
xiaoyang7545 2020-06-09 16:57:02 +08:00
你说的是修改表结构的,还是修改表内数据啊。如果是表内数据的 2 楼想法应该是可以用的。
|
8
vindac OP @xiaoyang7545 表内数据。
比如 age 原来是 18,用户改成了 19,那就要通知管理员。管理员打开的页面这个字段是要标红的。 2 楼的能实现提醒修改前为 18,修改后为 19 。可我是表单页面,管理员和用户看到的应该一样的。只是管理员需要知道改后的字段。 |
10
ccpp132 2020-06-09 17:07:15 +08:00 via Android
你这是想要一个 change history 表吧,google 应该一下有现成方案的
|
11
coolair 2020-06-09 17:09:03 +08:00
我先在也有这种需求,也是表单,不过我不是用的字段,我是在主业务表里存了一个表单内容的 json 。
每次用户变更内容的时候,把变更内容的 json 存到该用户的操作步骤里,并更新主业务表的内容。 这样,每一步都知道哪个用户变更了哪些内容,而且主业务表里的内容也是最新的。 |
12
dog82 2020-06-09 17:11:45 +08:00
spring 写一个 post 的切面,然后调用发通知的接口
标红是前端的事情,跟通知互不干涉 |
13
spicecch 2020-06-09 20:32:03 +08:00 via iPhone
感觉你说的问题 2 楼的方法完全能解决
|