表的最后修改时间UPDATE_TIME的设计

 每个表的update_time,一般代表的是这条数据本身的修改时间。但是update_time其实在很多场景下有特殊的用法,在这里结合多年的业务和经验,介绍几种常见的关于UPDATE_TIME的设计 。

(1)数据在复制环境中的时间:REP_TIME

在现在的互联网产品中,往往不止一个数据库。某个数据库会在多个机房有备份,或者同一个机房有多个备份。实现这种主从复制的技术有很多,有些技术往往需要解决复制环境中数据冲突的问题。此时数据变动的时间就是解决冲突的常见手法。这个数据变动的时间,和业务无关,只要数据实际情况发生了一次UPDATE修改,那么这个时间就需要变动。无论这个修改是有实际意义的,还是说某个开发就是做了一次无效的UPDATE操作。

在ORACLE数据库中,这个字段一般使用TIMESTAMP类型,保证这个修改时间是通过触发器来实现的,也就是只要发生UPDATE修改,这个时间会通过触发器修改,无需程序管理。

所以,在复制环境中, 参与复制所有的表都需要有这个REP_TIME的字段,以及维护这个字段的触发器。虽然这个字段可以代表数据的修改时间,但是通常这个字段和业务的紧密度不相关,仅仅表现的数据修改本身的时间。

(2)网站客户的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库概要设计 数据库概要设计 vc 端符合直觉,m 端追求快速(TDD BDD) 长期... 【缩写】 我们规定 类似 bq = blockquote cT = create_time uT = update_time id = ${entity}_id 【约定⼤于配置】 create_time update_time 是没有打⽇志情况最后⼀根稻草 `create_time` timestamp not null default current_timestamp comment '创建时间', `update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改时间', 【概要设计规定】 1. constraint 约束先忽略 not null ⾃增 auto_increment 2. 类型先忽略 int varchar timestamp 3. 数据字典 先忽略 comment 4. 默认值 DEFAULT 先忽略 5. 违反第三范式 适当数据冗余减少join (遵守第⼀范式⼆维 第⼆范式 context + 主键)    【Java ⼏种实体】就是说我们不⽤外键,让程序去维护⼏个实体的关联。 DTO (data2obj 作为传输实体存在) = (Entity1 + Entity2)(service 业务驱动) XXXForm (单实体) = 前端单参数封装( API 驱动 ) VO (作为规定格式实体返回给前端⽽存在) 【⼏个 Key】 primary key foreign key 外键 第三范式 unique key 插⼊数据不重复   => 考虑分布式场景 使⽤mysql⾃带约束限制唯⼀性,如 UNIQUE KEY `user_name_unique` (`username`) USING BTREE key 逻辑层加快查询速度 另外不建议 强制索引   index 物理层 实体 【product_category】 (id,category_name,catagory_type) & pk(id) 【product_info】(id,product_name,product_price,product_stock,   product_description,product_icon,product_status,category_type) & pk(id) 【order_master】(id,buyer_name,buyer_phone,buyer_address,buyer_openid,   order_status,pay_status) & pk(id) & key(buyer_openid) 【order_detail】(detail_id,order_id,product_id,product_name,product_price,   product_quantity,product_icon)&pk(detail_id)&key(order_id) 【seller_info】(id,username,password,openid) & pk(id) ………………………………………………………………………………………………………… 特殊的 分类 【递归层级】 类型 datetime 较⽅便查看创建时间 更新时间 text 富⽂本 decimal(totaLen,preci)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值