[关闭]
@chenxuxiong 2016-05-23T13:44:18.000000Z 字数 2157 阅读 350

matheasy项目相关

项目


负责的功能模块

用到哪些技术

难点

需求分析

主要负责需求分析,数据库表的设计,接口文档的编写,同时负责教师端的各个等功能,如分页按天数获取作业列表,搜索查询作业列表,批改学生列表,作业详情,作业批改,后台管理系统等等。

第一次开会记录客户需求,功能点
会后讨论需求是否合理
第二次开会去除无用的需求,讨论清楚模糊的需求,决定第一次功能点
画出不同需求的流程图, 面向客户的,确认基本流程
有人负责画线框图,客户是否满意UI设计
后台根据线框图开始同步进行列举功能点,确定各个接口的参数
根据接口和参数进行数据库表设计
(同时安卓人员开发UI,自定义假数据,交给客户测试UI)
尽量保持接口参数,数据库表字段相同,model类的字段相同
接口文档编写,代码开发,框架就是选那几个
单元测试后放上服务器,安卓端接入测试

期间可能会加入需求,

亮点

任务分配

最大的收获

数据库设计

不用外键:如果用外键的话每次插入都要校验
根据功能接口设置表
字段保持与自己编写接口文档和model层的代码相同,大写的变成下划线
设计时根据功能接口,与另一个人商量设计是否合理
设计完成后,再根据功能接口决定哪些需要加索引,如orderby ,where的,
或者添加组合索引
每个表都添加更新时间和插入时间记录,像日志一样登记
适当添加冗余,减少表的关联
把比较复杂的计算放到程序中,而不是调用数据库的函数

开发过程中进行sql语句的优化
(1) 查看执行计划
(2) 根据需要进行索引的添加
(3) 根据需要修改 sql,使得尽可能使用索引

数据不要物理删除,应该加一个标志位,以防用户后悔时,能够恢复
做好权限控制

索引优化
最左前缀原理
如果查询条件中含有函数或表达式, 则MySQL不会为这列使用索引

SELECT count(DISTINCT(concat(first_name, left(last_name, 4))))/count(*) AS Selectivity FR
OM employees.employees;

ALTER TABLE employees.employees
ADD INDEX first_name_last_name4 (first_name, last_name(4));

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注