发表于: 2017-08-05 23:42:56
2 1020
一、学习总结
1.通过网上资源学习了数据库的设计步骤
数据库的设计步骤如下:
(1)需求分析
数据是什么
数据有哪些属性
数据和属性各自的特点有哪些
(2)逻辑设计
ER图对数据库进行逻辑建模
(3)物理设置
主要的关系数据库:MySql、SQLServer、Oracle
主要的非关系数据库:mongodb、redis
每种数据库都有各自的特点,根据数据库自身的特点把逻辑设计转化为物理设计
(4)维护
新的需求进行建表
索引优化
大表拆分
2.学习了mysql主要数据类型
(1)重点关注了tinyint、int、bigint三种数值类型,估测了各种数据类型表达的范围。
Inyint——三位数,百级
Int——十位数,十亿级
Bigint——十八位数
感悟:技能树上的学员数和师兄数应该是不太可能超过十亿的,所以学员ID和师兄ID可以考虑使用int类型;修正类型、分院编码、角色编码应该是可以用tinyint来表示的,但是为了更好扩充,还是使用int类型。
(2)重点关注了datetime、timestamp两种日期和时间类型
Datetime——1000-01-01 00:00:00/9999-12-31 23:59:59
Timestamp——1970-01-01 00:00:00/2037 年某时
unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。其与时区有关,更能反映当前的时间。插入时,会先转换为本地的时间再插入;查询时,会转换为本地的时间再显示。
感悟1:对时间范围要求宽的可以选择datetime;对时区有要求的可以选择timestamp;对两者都有要求的就可以考虑选择bigint类型。
感悟2:目前来讲,技能树上的绝大多数用户都是中国,跨时区的可能性极小;对时间的范围也不宽,所以使用上述三种类型都可以。采用大众的选择,我将表中的时间统一改为datetime。
3.安装mysql
(1)在网上下载了mysql-5.7.17.msi,一键安装完成。
(2)下载绿色版Navicat,连接mysql。
Mysql环境算是配置完成。
4.调整上次的表中的数据类型,并在Navicat新建表
学员表:jnshu_student
字段 | 类型 | 说明 |
id | int | 主键(自增) |
realName | varchar (50) | 姓名 |
long | ||
learnTypeCode | int | 修真类型 |
preBeginEnterTime | datetime | 预计最早入学时间 |
preEndEnterTime | datetime | 预计最迟入学时间 |
university | varchar (50) | 毕业院校 |
onLineNumber | int | 线上学号 |
logUrl | varchar (200) | 日报链接 |
motto | varchar (200) | 立愿 |
seniorTutorID | int | 辅导师兄ID |
knowSource | varchar (50) | 从何处了解到的修真院 |
updateTime | datetime | 更新时间 |
createTime | datetime | 创建时间 |
师兄表:jnshu_teacher_brother
字段 | 类型 | 说明 |
id | int | 主键(自增) |
realName | varchar (50) | 姓名 |
branchSchoolCode | int | 分院编码 |
learnTypeCode | int | 修真类型 |
roleCode | int | 角色编码 |
updateTime | datetime | 更新时间 |
createTime | datetime | 创建时间 |
修真类型:jnshu_ learn_type
字段 | 类型 | 说明 |
id | int | 主键(自增) |
learnTypeCode | int | 修真编码 |
learnTypeName | varchar (50) | 修真名称 |
updateTime | datetime | 更新时间 |
createTime | datetime | 创建时间 |
分院类型:jnshu_ branch_school
字段 | 类型 | 说明 |
id | int | 主键(自增) |
branchSchooCode | int | 分院编码 |
branchSchooName | varchar (50) | 分院名称 |
updateTime | datetime | 更新时间 |
createTime | datetime | 创建时间 |
角色类型:jnshu_ role
字段 | 类型 | 说明 |
id | int | 主键(自增) |
roleCode | int | 角色编码 |
roleName | varchar (50) | 角色名称 |
updateTime | datetime | 更新时间 |
createTime | datetime | 创建时间 |
新建完成的表,如下:
5.初始化数据,查询,修改数据
二、下次任务
1.熟悉mysql操作,测试索引性能
2.配置java开发环境
评论