发表于: 2017-07-10 11:45:38
1 1279
任务1总结:
看到交任务的需求找了下之前的代码,发现被我删了好多,基本都不同了。只能重新在写一次。重新复习一下,然后写一下总结。在把之前的东西整理一遍。一边插入数据一边写总结,不知道为什么昨晚上搞了一晚上。愣是没有接通数据库,这是很奇怪的事情.一直说要使用useSSL=false or true来连接。今晚回去的时候在继续研究下什么情况。今天主要研究了下审核需求,发现自己的code很多不符合要求。要重新整理一遍了。今天光看设计的命名规范就花了点时间,还有在重新写自己的mybatis 整理出两套符合要求的方法.
1.DB的设计和命名符号规范
答:1) 标准化和规范化
数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但 Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF 标准的数据库的表设计原 则是:“One Fact in One Place”即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键 相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据。
举例:某个存放客户及其有关定单的3NF 数据库就可能有两个 表:Customer和Order。Order表不包含定单关联客户的任何信息,但表内会存放一个键值,该键指向Customer表里包含该客户信息的那 一行。
事实上,为了效率的缘故,对表不进行标准化有时也是必要的。
2) 数据驱动
采用数据驱动而非硬编码的方式,许多策略变更和 维护都会方便得多,大大增强系统的灵活性和扩展性。
举例,假如用户界面要访问外部数据源(文件、XML 文档、其他数据库等),不妨把相应的连接 和路径信息存储在用户界面支持表里。还有,如果用户界面执行工作流之类的任务(发送邮件、打印信笺、修改记录状态等),那么产生工作流的数据也可以存放在 数据库里。角色权限管理也可以通过数据驱动来完成。事实上,如果过程是数据驱动的,你就可以把相当大的责任推给用户,由用户来维护自己的工作流过程。
3) 考 虑各种变化
在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。
举例,姓氏就是如此(注意是西方人的姓氏,比如女性结婚后从夫姓 等)。所以,在建立系统存储客户信息时,在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化。
2. 数据库涉及字符规范
采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线'_'组成,共63个字符.不能出现其他字符(注 释除外).
注意事项:
1) 以上命名都不得超过30个字符的系统限制.变量名的长度限制为29(不包括标识字符@).
2) 数据 对象、变量的命名都采用英文字符,禁止使用中文命名.绝对不要在对象名的字符之间留空格.
3) 小心保留词,要保证你的字段名没有和保留词、数据 库系统或者常用访问方法冲突
5) 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性.假如数据类型在一个表里是整 数,那在另一个表里可就别变成字符型了.
3.数据库命名规范
数据库,数据表一律使用前缀
正式数 据库名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的.比如:
web_19floor_net
web_car
备 份数据库名使用正式库名加上备份时间组成,如:
web_19floor_net_20070403
web_car_20070403
4. 数据库表命名规范
数据表名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的.
相关应用的数据表使用同一前缀,如 论坛的表使用cdb_前缀,博客的数据表使用supe_前缀,前缀名称一般不超过5字
比如:
web_user
web_group
supe_userspace
备 份数据表名使用正式表名加上备份时间组成,如:
web_user_20070403
web_group_20070403
supe_userspace_20070403
5. 字段命名规范
字段名称使用单词组合完成,首字母小写,后面单词的首字母大写,最好是带表名前缀.
如 web_user 表的字 段:
userId
userName
userPassword
表与表之间的相关联字段要用统一名称,
如 web_user 表 里面的 userId 和 web_group 表里面的 userId 相对应
6.字段类型规范
规则:用尽量少的存储空间来存 数一个字段的数据.
比如能用int的就不用char或者varchar
能用tinyint的就不用int
能用 varchar(20)的就不用varchar(255)
时间戳字段尽量用int型,如created:表示从 '1970-01-01 08:00:00'开始的int秒数,采用英文单词的过去式;gmtCreated:表示datetime类型的时间,即形如 '1980-01-01 00:00:00'的时间串,Java中对应的类型为Timestamp
7.数据库设计文档规范
所 有数据库设计要写成文档,文档以模块化形式表达.大致格式如下:
'-------------------------------------------
' 表 名: web_user
' 作者: Aeolus(傻鱼)
' 日期: 2007-04-11
' 版 本: 1.0
' 描述: 保存用户资料
' 具体内容:
' UserID int,自动增量 用户 代码
' UserName char(12) 用户名字
' ......
'--------------------------------------------
明天的计划的事:复习mybatis。在写一次code,达到审核要求。尽量做到两天交任务
遇到的问题:由于之前一直没有注意到mybatis需要用到dao接口,在写test的时候有好多的小问题需要解决的。看到任务审核中的 7 8不知道什么意思。
7.通过远程连接Mysql,使用自定义域名并通过配置本地Host来配置DB连接文件
9.访问数据的时候使用Try/Catch捕获异常,关闭DB之后测试异常代码可以正确执行
收获:重新看了一次mybatis,比之前了解的又在深刻一点。
评论