项目开发的一些注意点(一)

项目开发的一些注意点


设计表原则

设计表-----三大范式
    第一范式:每一个列只能有一个意思
    第二范式:在第一范式基础上,表中某一个列的值,区分一整条数据,要求列可以唯一确定一条数据
    第三范式:一张表中只允许描述一个对象  (也有打破第三范式)
        
简单来说就是表的设计: 1.二维表 2.主键 3.外键 


关于分时统计表

某个时间点将满足条件查询数据保存在一张分时统计表,要使用时,直接查询分时统计表即可,隔一段时间,再更新一次分时统计表,适用于排行统计,计数等

涉及大量数据排行,可以采用分时统计表. 为什么?
   假设不是分时统计表.如果查询表的数据非常庞大,排行排序order by操作非常耗时
    解决办法: 1.使用redis,不建议使用,涉及大量数据也不方法操作
             2.分时统计表,隔一段时间进行统计,从实现上更为容易
   分时统计表维护要求:
   1.一定周期要执行一次
   2.进行程序控制执行,人工操作存在一定不确定性,最好让系统自己来
  这个时候,可以采用定时器     


关于定时器的使用

  • 定时器组件:
  1. jdk Task
  2. spring Task
  3. 第三方框架 :Quartz ,第三方框架:elastic-job xxl-job
  • 在前后端分离中,定时器实现分时统计表应该写到哪个项目中?
思考:后台项目 还是 api接口项目
答案:一般就是新开一个任务调度项目,专门管理计时
        当然后台也行,分时统计表数据也算是数据管理的范畴
        api项目后续若是设计集群操作,会出现定时器集群,所以排除
  • 操作
1.创建一个包,新建定时任务类
2.类中贴上@Component 被容器管理
3.方法上贴上 @Scheduled定时任务标签   标签参数cron:定时任务计划(指定怎么执行doWork)
4.在主类上 贴注解@ EnableScheduleling 开启定时任务   


涉及多条件数据封装

一般有三种 
    1.map 2.vo对象 3.domain对象
map封装在前端显示一般会很麻烦
vo对象: value Object 数据封装对象
domain对象: 实体对象,一般有一张与一张表对应,涉及分时统计可以采用domain对象映射    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值