task1-9
今天完成:
- Task1.参考修真院线下报名贴(学习资料-线下报名-北京报名)中报名的格式,整理出业务模型,确定需要几个对象,每个对象的属性是什么,对象和对象之间的关系是一对一,还是一对多。
【参考资料】
采用面向对象的思想进行需求分析,提取业务模型
类图可以帮助我们识别业务需求中的人、业务概念、物品和事件等,并理清他们之间的关系。
需求中提到的各种业务概念、人物等,经过抽象后都可以视之为类。
类图包含了:类名、属性和方法三部分,其中减号表示private作用域,加号表示public作用域。
类之间的关系
直线关系 :直线表示两者间存在一种关联关系,并可以在线的两端标示出具体的关系(比如1:1 1:多 1:0-3 角色关系 导航关系)
包含关系 包含关系有空心菱形和实心菱形两种方式,其中空心表示弱包含(标准UML:聚合关系Aggregation),实心表示强包含(标准UML:组合关系Composition)。
继承(泛化)关系
实心线加空心三角符号构成了继承关系,其中空心三角符号所指的类是被依赖的类
依赖关系 虚线表示依赖关系,其中箭头方向为被依赖的类
自己实践:
如果将学员抽象成类,可以做出下面的用例图
与之对应的对象有三个(报名学员,引荐师兄,审核师兄),他们之间的关系如下
下面是学院的类图(属性和方法先用中文代替,并且略有瑕疵,后面会修正)
Task2&3:mysql数据库和navicat数据库管理工具的安装
自己实践:
Task4:报名表的表结构
stu_id | name | type | school_day | gra_university | online_id | day_report | wish | rec_senior | check_senior |
Task5:设计数据库(包括数据库的三个基本字段)
还是第一次接触时间戳这个概念,主要拿来和datetime做对比,数据库也需要做出改变
【参考资料】datetime 1、允许为空值,可以自定义值,系统不会自动修改其值。 2、不可以设定默认值,所以在不允许为空值的情况下,必须手动指定datetime字段的值才可以成功插入数据。 3、虽然不可以设定默认值,但是可以在指定datetime字段的值的时候使用now()变量来自动插入系统的当前时间。 timestamp 1、允许为空值,但是不可以自定义值,所以为空值时没有任何意义。 2、默认值为CURRENT_TIMESTAMP(),其实也就是当前的系统时间。 3、数据库会自动修改其值,所以在插入记录时不需要指定timestamp字段的名称和timestamp字段的值,你只需要在设计表的时候添加一个timestamp字段即可,插入后该字段的值会自动变为当前系统时间。 4、以后任何时间修改表中的记录时,对应记录的timestamp值会自动被更新为当前的系统时间。
自己实践:
补充:查看mysql数据库版本
后来增加了id自增,还有时间戳字段(不过自增Long是什么鬼?mysql没有这个类型啊,我用了bigint),
【补充资料】long是32位的,在数据库中可以用bigint或者numeric(x,y),x是长度,y是小数点后面的位数
修改ID为自动增长标识(参考)
alter table dbo.Tb_Customer_Assess drop column id
alter table dbo.Tb_Customer_Assess add id int primary key identity(1,1)
自己实践:
修改如下:
Task6: 从报名贴中找一条最近报名的师弟,用Mysql插入这条数据,并能够根据姓名查出来这条记录
之前建表的时候把qq属性给漏了,现在补上
- Task7. 分别用Navcat和Sql语句去将本条数据记录的报名宣言改成老大最帅
哈哈,改好了
- Task 8. 将表导出成Sql文件,并使用navcat和Sql分别尝试删除此条数据,并用之前备份的Sql恢复。
【参考资料】进入mysql命令行之后,怎么退出
一般mysql命令行中加;号代表一行命令的结束 \c 可以退出当前行命令,
\q或者exit退出mysql命令行
APACHE用的多,负责居中调试,PHP进来了,引导给PHP来运算,JSP进来了,引导给TOMCAT
自己实践:
使用数据库查询表内容
删除是成功了,但是能不能恢复呢?可以!我的stu表又回来了
- Task 9. 给姓名建索引,思考一下还应该给哪些数据建索引
【参考资料】一个简单的对比测试
以我去年测试的数据作为一个简单示例,20多条数据源随机生成200万条数据,平均每条数据源都重复大概10万次,表结构比较简单,仅包含一个自增ID,一个char类型,一个text类型和一个int类型,单表2G大小,使用MyIASM引擎。开始测试未添加任何索引。
执行下面的SQL语句:
1 |
mysql> SELECT id,FROM_UNIXTIME( time ) FROM article WHERE a.title= '测试标题' |
查询需要的时间非常恐怖的,如果加上联合查询和其他一些约束条件,数据库会疯狂的消耗内存,并且会影响前端程序的执行。这时给title字段添加一个BTREE索引:
1 |
mysql> ALTER TABLE article ADD INDEX index_article_title ON title(200); |
再次执行上述查询语句,其对比非常明显:
MySQL索引的概念
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。上述SQL语句,在没有索引的情况下,数据库会遍历全部200条数据后选择符合条件的;而有了相应的索引之后,数据库会直接在索引中查找符合条件的选项。如果我们把SQL语句换成“SELECT * FROM article WHERE id=2000000”,那么你是希望数据库按照顺序读取完200万行数据以后给你结果还是直接在索引中定位呢?上面的两个图片鲜明的用时对比已经给出了答案(注:一般数据库默认都会为主键生成索引)。
索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。
什么样的字段适合创建索引:
索引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。
一般来说,应该在这些列上创建索引,例如:
第一、在经常需要搜索的列上,可以加快搜索的速度;
第二、在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;
第三、在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;
第四、在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
第五、在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
第六、在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。
建立索引,一般按照select的where条件来建立,比如: select的条件是where f1 and f2,那么如果我们在字段f1或字段f2上简历索引是没有用的,只有在字段f1和f2上同时建立索引才有用等。
自己实践:
结合上面说的那些,可以得出结论:除了给姓名做索引,还可以给学院的online_id建索引,因为它可以作为这个表的外键
创建成功!
添加成功!
二:明天计划
完成下面的几个任务(yes!)
- 10.插入10条数据,查看有索引和无索引的情况下,Sql语句执行的效率
- 11.查看深度思考中Mysql相关的一些问题,将自己思考的结果写在日报中,并查阅之前师兄的日报,看看是否有合自己思路接近或者是完全不一致的地方。
- 12.下载Java 7,并配置环境变量,百度搜索一下JDK和JRE的区别,并将结论用自己的话写在日报中。
- 13.下载Maven3,并配置好环境变量。
- 14.下载Eclipse或者是IDEA,配置好Maven。IDEA不用配置Maven,Eclipse也分自带或者外部,推荐使用外部Maven。
- 15.创建一个新的maven项目
- 16.在src/main/java下随便创建一个java文件,clean,install.查看本地的.m2下是否成功看到有Jar包。
- 17.编写DAO,注意写清楚Interface和Impl,注意遵守命名规范。
三:遇到问题
在navicat命令行工具里面输入准确命令不管用!
四:思考总结
往往一个任务如果仔细做的话,在查找资料的时候会发现好多其它知识点,在时间允许下应当一块复习了。
task1-9的更多相关文章
- 房价预测Task1
pandas:简单的房价预测实例 我们使用pandas等工具,对于给出的.csv文件进行处理,完成要求的几个Task. 利用sklearn的线性回归,对于房价进行简单的预测. 所有的要求,数据集等文件 ...
- 清华集训2014 day2 task1 简单回路
题目 如题. 算法 就是刚学习的插头DP. 从前往后和从后往前分别进行一次DP. 要点 合法的括号序列只有103个 如何合并两次dp的信息 一开始犯傻了,以为当且仅当两个轮廓线的状态相同才是合法的方案 ...
- 清华集训2014 day1 task1 玛里苟斯
题目 这可算是描述很简单的一道题了!但是不简单. \(S\)是一个可重集合,\(S = \{a_1, a_2, \dots, a_n \}\). 等概率随机取\(S\)的一个子集\(A = \{a_{ ...
- verilog task1
问题描述: 设计中需要重复多次施加一种激励,每一次激励的施加过程,都可以划分为4个部分,如图所示. 每一次施加的激励只有第二部分的数据有变化(数据格式无变化).所以顶层的Testbench代码如下: ...
- 百度前端技术学院-task1.8源代码以及个人总结
通过这次任务的练习我学到了很多,现将所学到的以及遇到的问题总结如下. 源码地址:http://pan.baidu.com/s/1kVB2VZL 下面出现的代码,都是摘自这个上面的源码 1.终于明白了a ...
- task1
centos定时任务 清空特定目录文件 https://www.jb51.net/article/151066.htm 这次linux下不生成日志文件主要是因为日志框架冲突问题,我解决问题的思路错了 ...
- 百度前端技术学院-task1.8源代码
主要是不采用bootstrap实现网格. 遇到的困难及注意点如下: 1.[class*='col-'],这个是选择col-开头的类,第一次用,以前也只是看到过: 2.媒体查询,总觉得容易理解错误.@m ...
- Datawhale MySQL 训练营 Task1:MySQL 安装与数据库基础
安装 平台 Windows X64; MySQL: 直接去 MySQL 官网 下载:点击即可安装:安装过程中可能会要求 python3.7; 可以去安装一个 python3.7; 可视化工具:Navi ...
- 百度前端技术学院task1.10
任务十:Flexbox 布局练习 面向人群: 有一定HTML及CSS基础的同学 难度: 中 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容 ...
- 百度前端技术学院task1 总结
1.居中:当使用text-align或者vatical-align无法达到居中的时候,如果知道元素的大小,可以采用先设为left或right为50%,再设置margin-left或者margin-ri ...
随机推荐
- selenium 定位元素方式大全
starts-with 顾名思义,匹配一个属性开始位置的关键字 contains 匹配一个属性值中包含的字符串 text() 匹配的是显示文本信息,此处也可以用来做定位用 eg //input[sta ...
- python装饰器的作用
常见装饰器:内置装饰器:类装饰器.函数装饰器.带参数的函数装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常 ...
- 自动生成logo的网址
1.https://www.logaster.com/logo/
- 专业术语:闭包、网站优化 Gzip 服务器端文件压缩
1, 闭包:http://baike.baidu.com/view/648413.htm 2, 网站优化 Gzip 服务器端文件压缩 http://baike.baidu.com/view/96662 ...
- ASP.net的身份验证方式有哪些?
[转] ASP.net的身份验证方式有哪些?分别是什么原理? Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验 ...
- http://blog.csdn.net/emoven/article/details/12999265
http://blog.csdn.net/emoven/article/details/12999265
- ElasticSearch中设置排序Java
有用的链接:http://stackoverflow.com/questions/12215380/sorting-on-several-fields-in-elasticsearch 有的时候,需要 ...
- 在Hadoop监控页面怎样查看Hive的完整SQL
如图.这里仅仅能看到简单的一段SQL.差点儿看不出详细在运行什么任务. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGFvemhhb2t1bg==/fo ...
- VM虚拟机 Windows虚拟机中linux鼠标不能动怎么办
有一次vmware安装red hat linux后,进入x-windows界面,鼠标不能用,百思不得其解,因为自己的安装linux的过程中设置绝对是没有问题的啊,鼠标设置肯定是usb带滑轮,这个肯定没 ...
- 使用RTTI为继承体系编写”==”运算符
转载请注明出处:http://www.cnblogs.com/inevermore/p/4012079.html RTTI,指的是运行时类型识别技术. 先看一个貌似无关的问题: 为继承体系 ...