发表于: 2017-04-06 16:53:28
4 1579
今天完成的事情:
1.参考修真院线下报名贴(学习资料-线下报名-北京报名)中报名的格式,整理出业务模型,确定需要几个对象,每个对象的属性是什么,对象和对象之间的关系是一对一,还是一对多。
2.下载并安装及配置Mysql 5.5
3.下载navicat,或者是Hedisql,连接Mysql,别问我navicat收费怎么办。
4.创建出来报名贴的业务表,并将表结构粘贴到日报中,对比之前师兄的表结构设计,看看有什么差别
5.使用navicat设计mysql数据库,数据库的每一个表中都要有三个基本的字段,ID(自增Long),create_at,update_at(所有的时间都用Long)。
6.从报名贴中找一条最近报名的师弟,用Mysql插入这条数据,并能够根据姓名查出来这条记录
7.分别用Navciat和Sql语句去将本条数据记录的报名宣言改成老大最帅
8.将表导出成Sql文件,并使用navciat和Sql分别尝试删除此条数据,并用之前备份的Sql恢复。
上面是任务一的前8条要求,由于之前已经有部分自学基础故2.3.两条跳过不述,其中navicat替换为sqlyog;
对于1.首先是查看了报名格式,大致确定了分为两个表(初学者个人认为一个表也没问题,欢迎指正);
4.需要uml图的绘制,还不回暂时不做;
5.两个表DDL如下:
6.DML如下,其中task01_related_info中student_id后面会由java代码控制填入,放弃使用外键约束;
7.DML如下
8.只完成了数据导出的一部分
1 1491461868 1491461868 李博文 187003594 前端工程师 2017-03-20 吉林化工学院 JS-513 http://www.jnshu.com/daily/16899?uid=9391 老大最帅
明天计划的事情:由于在职原因,没有办法做详细计划,尽可能在最快时间内完成任务。
遇到的问题:
1.表的设计,最初考虑使用一个表或者两个表,但是考虑以后练习的需要,设计成为两个分开的表;
2.自增long类型在mysql中并没有直接定义,而是通过bigint实现;
3.long型数据对于时间戳的转换;
4.外键的使用与否;
5.mysql命令参数对中文支持不好,导出数据时中文路径文件导出失败;
收获:
- mysql 获取当前的时间戳 unix_timestamp(now());
其中NOW() 函数返回当前的日期和时间,unix_timestamp()返回时间戳。
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
- mysql中没有long类型数据,取而代之的是bigint,但在sqlyog中。通常来讲,数据库为了便于日后扩展,数据表的id应当设置为long型或long的替代类型(bigint)数据。此外数据表的时间戳也采用long类数据处理比较方便,没有时区问题,处理起来也比较容易做到标准化。
- 外键的引入在为数据表数据增加约束的同时也会影响系统的拓展性,应当慎重添加。
- 通过from_unixtime把Long时间转换为日期格式。具体用法如下:select from_unixtime(1388776825);执行即可。
还可以增加时间格式,用法如下:SELECT FROM_UNIXTIME( 1388776825, '%Y%m%d' ) 结果:20140104
SELECT FROM_UNIXTIME( 1388776825, '%Y年%m月%d' ) 结果:2014年1月4
如果想逆向转换,可以通过unix_timestamp()函数反向转换。用法如下:
SELECT UNIX_TIMESTAMP() ;//获取当前时间的秒数
SELECT UNIX_TIMESTAMP('2014-03-23 10:10:40') ; //获取指定日期格式的秒数
SELECT UNIX_TIMESTAMP('2014-03-23') ; //获取指定日期格式的秒数
评论