年龄每年自动+1

qps2009 2019-07-10 09:15:49
客户那边突然提了个需求,要求我们数据库里面存的年龄和工龄按年,每年+1,比如某个用户的信息,今年他的年龄是20,工龄是1,到了明年之后,就要自动把他的年龄和工龄加1,变成21和2。我想过用定时器,但是用定时器难道要把频率设定成1年?有没有其他更好的方法?后端用的是springboot+mybaits,数据库是mysql。
...全文
275 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qps2009 2019-07-10
  • 打赏
  • 举报
回复
引用 6 楼 weixin_40290083 的回复:
你在数据库设计时,表中不但有出生日期、入职日期两个属生,而且还有年龄和工龄的属性。 这样的设计是不符合数据范式的。因为这两个属生是可以根据出生日期、入职日期计算出来的,它们之间就有了相关性。 建议将年龄和工龄两个属性取掉,在你的service层对实体对象的年龄和工龄进行计算。最终在视图层显示。这样任何时候查询用户信息其中的年龄和工龄都是实时的,避免数据错误。 否则用户量多时,要真实反应用户的年龄和工龄每天需要对该表全表更新。显然是不科学的。
这个方法可行。
MattK 2019-07-10
  • 打赏
  • 举报
回复
引用 4 楼 qps2009的回复:
[quote=引用 1 楼 weixin_39246271 的回复:] 工龄等于系统年份减去信息登录年份 年龄等于系统年份减去出生年份
计算年龄和工龄问题不大,我就是想每年只更新一次年龄和工龄[/quote] 何苦呢,创建一个view每次使用调用view让它自己计算就好了呀
weixin_40290083 2019-07-10
  • 打赏
  • 举报
回复
你在数据库设计时,表中不但有出生日期、入职日期两个属生,而且还有年龄和工龄的属性。 这样的设计是不符合数据范式的。因为这两个属生是可以根据出生日期、入职日期计算出来的,它们之间就有了相关性。 建议将年龄和工龄两个属性取掉,在你的service层对实体对象的年龄和工龄进行计算。最终在视图层显示。这样任何时候查询用户信息其中的年龄和工龄都是实时的,避免数据错误。 否则用户量多时,要真实反应用户的年龄和工龄每天需要对该表全表更新。显然是不科学的。
小小菜鸟肥 2019-07-10
  • 打赏
  • 举报
回复
如果是工龄的话,可能是得按月吧,每个人入职时间都不一样,像我那样可能一年也更新不到一次也不一定。反正就是个小需求,按月也没啥大不了的。
qps2009 2019-07-10
  • 打赏
  • 举报
回复
引用 1 楼 weixin_39246271 的回复:
工龄等于系统年份减去信息登录年份 年龄等于系统年份减去出生年份
计算年龄和工龄问题不大,我就是想每年只更新一次年龄和工龄
qps2009 2019-07-10
  • 打赏
  • 举报
回复
引用 2 楼 小小菜鸟肥 的回复:
应该不用定时器吧,如果是属于个人信息,平时不经常查询的话,就现在日期-加入公司的日期=工龄,平时不改动,用户查询的时候,后台更新,再取出展示,年龄同理。
相当于每次查询的时候先更新年龄和工龄再展示?
小小菜鸟肥 2019-07-10
  • 打赏
  • 举报
回复
应该不用定时器吧,如果是属于个人信息,平时不经常查询的话,就现在日期-加入公司的日期=工龄,平时不改动,用户查询的时候,后台更新,再取出展示,年龄同理。
MattK 2019-07-10
  • 打赏
  • 举报
回复
工龄等于系统年份减去信息登录年份 年龄等于系统年份减去出生年份

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧