发表于: 2018-03-28 22:36:29

2 591


任务一:

一、根据报名帖整理业务模型

1. 根据报名帖的内容确定需求:报名管理系统,业务包括用户发帖,管理员审核....(暂时先想到这两个显而易见的..)

2. 需要的对象有: 发帖人,审核人,帖子,课程

3. 发帖人属性包括(姓名,QQ号,毕业院校,线上学号);审核人属性(姓名);帖子(入学时间,日报连接,辅导师兄,立愿,获知渠道);课程属性(课程名);

4. 对象关系:这里主要是关联关系,一个发帖人可以发一个帖子,一个帖子对应一个发帖人,发帖人和帖子之间是一对一的关系;一个审核人对应多个帖子,一个帖子对应多个审核人,审核人和帖子之间是一对多的关系;帖子和课程是一对一的关系,发帖人是课程是一对一的关系,发帖人和审核人是一对一的关系。

二、mysql的安装和配置

1. 参考百度,教程很多,不做赘述。

2. 这里采用最简单的方式直接下载msi版本:mysql-installer-community-5.7.20.msi

3. 安装之后配置下Path环境变量即可从控制台直接连接本地mysql服务

三、下载安装第三方数据库管理工具navicat

1. 直接下载网上pj版,过程不表

四、根据对象创建业务表

1. 直接上图

2.这里做的有点粗糙,后续在进行表结构的优化,post表代表发帖业务表,其中有三个外键,外键多的话不利于查询效率,后期打算做冗余处理。

五、使用navicat设计表

1.如步骤四所示,这些表都是在navicat下创建的。

六、插入任一条报名帖数据

1.先插入非外键表,用户表,管理员表,课程表

2.插入post表

七、修改数据记录字段报名宣言

八、将数据表导出sql文件

九、索引

1.给姓名加索引,报名表里并没有姓名字段,而是通过外键管理用户表

2. 用户表有主键id

十、sql语句执行效率

1. 有索引的情况下,插入效率要相对低一下,因为在插入数据之后,还要对索引字段

建立索引。

十一、mysql深入思考

1.为何使Long代替Date类型?

long类型是长整形,传输和存储更方便;long类型方便进行算数加减计算

2.自增ID有什么坏处?什么场景不适用自增id?

在分布式系统中,自增id会出现主键冲突的问题,可以采用UUID

3. 什么是DB的索引,多大的数据量建立索会有性能的差别?

索引就是对某一列或者某几列的值进行建立一种索引,数据结构基本上是树形或者哈希索引,好比是书的目录页码。根据页码可以直接定位到查找的章节。

4.唯一索引和普通索引的区别?

唯一索引的字段不能为null,且对于每一条几率来说是值是唯一的,可以唯一确定一条数据记录;普通索引不具备唯一索引的特点。

5.qq号建立唯一索引,插入数据时需要判断qq是否存在?

既然建立了唯一索引,就是插入的时候会报错,然后回滚事务,如果在业务层代码中进行qq号判断操作,当然是更好的选择。




返回列表 返回列表
评论

    分享到