发表于: 2018-03-15 23:26:11

4 826


3.15

今天是第一天写日报 有些截图没来得及截就过去了。(日报的字号怎么改...我一复制格式就乱了,但是看两边字号还是一样

首先是看任务目标,根据修真院的线下报名贴,去设计DB。无论做什么项目,从需求出发,设计对应的表结构都是一项基础的能力。去百度搜索了一下DB,大致看了一下数据库,由于官网那句尽量不依赖官网内容,我没有去看任务进行中里面的要求,只是自己根据这个任务目标来思考了一下需要什么工具,最后还是放弃了,因为自己不太了解这方面的知识导致无法独立完成这个任务只能依赖官网上的任务进行中的步骤。

Q1:参考报名模式整理出业务模型,确定需要几个对象,每个对象的属性是什么,对象和对象之间的关系是一对一还是一对多

A1:开始看到业务模型这个词,也试着去百度按(业务模型 java)关键词搜索了一下,无果,那就只好从下面的对象入手,这就涉及到了java的基础知识,对象、类,以及他们的属性和方法,我对这里的概念掌握的还是比较模糊,但是在查询资料后还是将业务模型整理了出来。

        分别需要:序号、姓名、QQ、修真类型、预计入学时间、毕业院校、线上学号、日报链接、立愿、辅导师兄、何处了解。

        个人认为属性就是最后赋给他们的值,比如序号的属性就是(1,2,3....),姓名的属性就是(张三,李四...),此处有问题,就是在表结构当中的姓名到底是类还是对象,我可不可以把姓名理解成类然后把下面要填入的名字理解成对象还是直接把姓名理解成对象把下面填入的名字理解成它的属性?我是把姓名理解成了对象,那么下面的一对一,一对多关系是:

        一个姓名对应一个序号 一个序号对应一个姓名

        一个姓名对应一个修真类型 一个修真类型对应多个姓名

        一个姓名对应一个预计入学时间 一个预计入学时间对应多个姓名

        一个姓名对应一个毕业院校 一个毕业院校对应多个姓名

        一个姓名对应一个线上学号 一个线上学号对应一个姓名

        一个姓名对应一个日报链接 一个日报链接对应一个姓名

        一个姓名对应一个立愿 一个立愿对应多个姓名

        一个姓名对应一个辅导师兄 一个辅导师兄对应多个姓名

         一个姓名对应多个何处了解  一个何处了解对应多个姓名

         我这里仅仅是拿姓名一个对象和其他对象相比较,这里的一对一或者一对多应该是函数映射关系,但是我在接下来的任务中没有发现此步骤的意义

Q2:下载安装并配置Mysql5.5

A2:这里开始配置环境,我就索性把Mysql5.7(其实不知道安什么版本,管不住自己点了官网上面那个链接,百度下载),navicat(网盘上扒下来,顺便他那个破解工具不好使),java 9.0(这个版本 一开始给你装的是JDK 装完之后出来一个定制安装 那个是JRE 而且电脑环境配置也和老版本不一样,需要自己更改,我这里改了半个小时,效率及其低下),maven3.53(这明天才能用到....)全部下载并安装,配置好环境。

         出现的问题是mysql安装版会自动检测你电脑上的软件,结果他识别不出我安装的vs tools for office以及我安装的vs 2017。

         我想到的解决办法,先把我装的东西都卸载了重新去微软官网下载,不行,然后发现Mysql安装版可以自动安装vs tools,卸载自己刚装的,用自动安装,结果最后给我报错(c++ 2010出错),装都装不上,那我就百度,谷歌,找到了类似的问题,也是VS2017识别不出来,网上选择的办法是安装自定义版,我就想自己试试,如果这两个组件没识别出来那我直接安装完整版能不能运行,然后,它居然还能安装完成。所以到底有什么影响.....到这里环境配置也完成了,接下来用navicat连接Mysql,成功。

Q3:下载navicat,或者是Hedisql,连接Mysql,别问我navicat收费怎么办

A3:emmm,收费去贴吧和网盘找啊(雾)。

Q4:创建出来报名贴的业务表,并将表结构粘贴到日报中,对比之前师兄的表结构设计,看看有什么差别

A4:其实很想吐槽一下这里的任务设计,因为我配置完之后看到这里真的有点懵,如果不看官网下面技能树中的SQL语句介绍我甚至不知道这个业务表和表结构是什么(百度业务表....没有想要的东西),应该是是我自己基础太弱,没法通过目标看到过程,既然不知道前面说的是什么。那就看看后面,对比师兄的表结构设计,果断去翻了下别人的日志http://www.jnshu.com/daily/52593?dailyType=others&total=12430&page=97&oid=5&sort=0&orderBy=3),在这里翻到了自己想看的东西,原来是使用SQL语句来给表中的对象赋值和数据类型,那就先要了解SQL语句相关知识。第一天对语句大概了解,但是无法做到熟练应用,还需要大量练习,数据类型方面概念也很模糊,这里急需加强基础知识。

        此处的问题

1.赋值和基本数据类型的引用不同:赋值等于把a、b划等号,而基本数据类型的引用只是把b的值复制给a,a的值变动不会导致b的值改变。

2.int和integer的区别:这里是基本数据类型和其封装类的区别,

(1)Integer是int的包装类,int则是java的一种基本数据类型 
(2)Integer变量必须实例化后才能使用,而int变量不需要 
(3)Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 
(4)Integer的默认值是null,int的默认值是0

       看了网上的例子,自己没有实战也没有分析源码,原因是还是想多完成一下今天的任务,因为之前配置环境耽误了不少时间自己也没有安装java的编译环境,感觉这里做法很有问题,坏习惯要改。顺便现在自己心里过了一遍基本数据类型的长度要求之类的,感觉完全没记住,菜是原罪。

3.SQL语句文本值需要单引号环绕,数值不需要

4.SQL语句中的排序功能,网站上的例子是英文,那么自然可以按照A-Z的顺序升序降序,如果我输入的是汉字,那么将如何排序?

5.数据的检索效率,char>varchar>text,我个人认为需要对姓名和辅导师兄进行检索所以对其赋了char数据类型,能用varchar的地方应不避免text类型

       我设计的表结构

        要是说区别,就是姓名这里为了快速检索我用了char类型,还有师兄用了text类型而我全都用了varchar类型,以及我加入了一个序号列

Q5:使用navicat设计mysql数据库,数据库的每一个表中都要有三个基本的字段,ID(自增Long),create_at,update_at(所有的时间都用Long)

A5:

          此处的问题

1.navicat里面只能设置类型为longtext,是否就是要求中的LONG?我自己查到了LONG和long的区别,和我在前文中提到的int和其包装类区别类似,那么此处任务中要求所有的时间都用LONG,为什么?长度怎么设置?longtext是否就是要求的LONG?输入update_at和create_at时系统会自动赋予类型和长度,那个datatime又是什么?(我今天没有都弄懂,而且这里概念太模糊了,解决办法是去看java教程?跟着任务来的话还是应该从基础学起才行?)

2.主键ID和自增长的意义,自增长方便数据管理?主键还没来得及实践操作。

3.我自己又拿SQL语句设置了一下主键,自增长不知道怎么设置。

Q6:从报名贴中找一条最近报名的师弟,用Mysql插入这条数据,并能够根据姓名查出来这条记录

A6:这就是基本的sql操作指令了,插入即insert into 表明 values(‘a','b','c')赋值即可,查询即select * from 表名 where 查询即可。

此处的问题,如果有多个数据,如何将新的数据插入到原有数据的中间处(现操作是直接把新的数据插入在最底下)

Q7:分别用Navciat和Sql语句去将本条数据记录的报名宣言改成老大最帅

A7:

不知道自己在navicat中直接对oath项文字进行修改是不是就符合任务要求。

Q8:将表导出成Sql文件,并使用navciat和Sql分别尝试删除此条数据,并用之前备份的Sql恢复。

A8:

导出sql方式有两种 一种是导出向导 另一种转储SQL文件 两者是否结果一样?


这个最后数据复原我还忘记截图了。。。反正是复原成功了。为什么导入向导中没有sql文件可以导入只能在数据库中运行sql文件才可以复原。

sql语句复原失败了,入学时间的赋值有问题?我这里入学时间赋值varchar,也就是允许用户输入年、月、日等汉字,出了问题果断百度,发现有一类似情况,说是要改UTF-8编码,但是我自己修改失败了,需要帮助一下。

Q9:给姓名建索引,思考一下还应该给哪些数据建索引

A9:

用sql语句增加索引,我觉得还需要给辅导师兄增加索引(原因。嘿嘿嘿)


         今天任务就做到这里,问题蛮多,结果吃完晚饭还睡了一觉,耽误了两个小时,起床赶快来写日报了,把问题拖到第二天是个坏习惯,不过写完日报还是要睡觉了。明天早起把问题补上然后继续明天的任务,没什么预期目标,能学多少是多少,另外问个小问题,师兄学习的时候听歌么?今天听了一会歌发现毫无效率!

         收获:最主要的收获还是可以把大学那些零散知识都捡起来了吧,以前没认真学,现在真的要认真学好基础知识了吧,然后就是今天的任务主要是sql语句和navicat把mysql可视化(不知道这么说对不对,总是感觉navicat端是个简易操作),再有就是数据类型这些,遇到了个自己解决不了的问题也是和这个有关系,希望自己能更正规的编写代码,期待以后的线下学习吧!



返回列表 返回列表
评论

    分享到