发表于: 2017-10-01 22:16:03
1 676
一.今天主要完成的事情
1.梳理昨天方案评审时老大提出的问题
(1).表结构设计不合理规范,表结构的设计只是按照之前做任务时的方式设计,没有深入的了解公司DAL框架,并结合公司框架的特点设计表
(2).部分功能设计不符合实际情况.比如登陆注册,之前想的太过于简单;还款计划,功能实现不符合实际要求,实际中要求创建一张表,记录用户购买的每一款产品的还款计划,跑批时只要扫表做相应的处理即可;销量统计,功能实现不合理,要求要建表记录并且用户的每一次操作都必须是立刻更新.
(3).对公司DAL框架理解不深入,excel中sql语句没有写
2.观看老大关于java概述,DAL缓存,Mysql的sql语句,索引等视频.
通过看视频,对公司框架有了进一步的认识
首先,该框架使我们只关心业务逻辑的编写,像其他的包括链接数据库,写缓存,更新维护缓存等以及一些基本的配置都帮我们做好了.
DAL框架的底层是用JDBC和Hibernate实现的.
有了该框架,我们在设计表时要先分析业务对象之间是一对一,一对多,还是多对多的关系,不同的关系决定设立几张表,可能还会设计关联表.同时,在使用sql时尽量使用简单的sql语句,因为这种查询数据的操作走缓存的概率更大,能够支持更高的并发量.
还有在用sql时尽量不要联表查询,因为表数量越多,效率就越差.
动态查询和较为复杂的sql语句是不能走缓存的,这些需要我们在代码生成之后在代码中调用方法拼接成实际需要的sql语句.
其次,关于缓存设计和维护要根据不同的场景进行选择,常见的方式有以下几种:
1. 定时更新缓存,适合于对数据即时性要求不高,当时访问次数频繁的场景
2. 每次向数据库插入,更新,删除数据时同时维护缓存,适合并发量大,读操作非常频繁的场景,但是缺点时代码复杂度较高
3. 每次向数据库插入,更新,删除数据的同时删除缓存中的相应数据,适合并发量不大的场景,缺点是如果出现极端情况,并发量突然增大,会有压垮数据库的风险
4. 在一开始向缓存中存数据时,设置失效时间,到期自动失效,通过在存数据时生成一个失效时间戳,访问缓存时比较当前时间戳和失效时间戳的大小,当前时间戳大于失效时间戳时就不返回数据.
二.明天计划完成的事情
1.根据今天看视频的设计原则,对照接口文档,重新设计数据表,并将能够直接生成并且可以走缓存的sql语句填入表中
2.如果有时间,对出现问题的功能设计重新思考实现方案.
三.遇到的问题
暂无
四.收获
以上
五.项目进度情况
有延期风险
评论