学习了三层和七层之后,就是数据库的重建了。因为当时自考的时候学过数据库设计原理,所以这一次做的还是比较轻松的,一些基础的概念都比较熟悉。
俗话说,万丈高楼平地起,辉煌只能靠自己。想要完成机房个人重构着个项目,首先还是要设计一个数据库。在设计数据库的过程中,我们可以梳理一下机房设计的逻辑,对我们之后的学习还是很有好处的。
1.下面的两张图,左边的是原先的机房收费系统的数据库,右边的是我自己进行设计的。
为了符合第一、第二范式的要求,减少冗余,我将CheckWeek和CheckDay两张表和为了一张Bill表。还将OnLine和OnWork两张表删去了,将其中正在进行上机和值班的信息,分别插入到了Student和WorkLog表中。
2.再回顾一下范式的内容。
第一范式:在任何一个关系数据库中,第一范式是对关系模式的最基本的要求。所谓第一范式,就是指数据库表的每一列都是不可分割的基本数据项。简而言之,第一范式就是无重复的列。
第二范式:在第一范式的基础上建立的。第二范式要求数据库表中的每个实例或行必须可以被唯一的区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。这个唯一属性列被称为主关键字或主键、主码。简而言之,第二范式就是非主属性非部分依赖于主关键字。
第三范式:满足第三范式必须先满足第二范式。简而言之,第三范式要求一个数据库表中不包含已在其他表中已包含的非主关键字信息。第三范式就是属性不依赖于其他非主属性。
3.我们应该用什么数据类型?
在我们建数据库的时候,会发现他默认的数据类型是varchar,那么什么是varchar呢,他是不是就一定是适合我们的数据类型的呢?他与我们常用的char类型用什么不同之处呢。下面我们就详细的说一下varchar与char的区别。
varchar与char的差别是非常细微的,但是很重要。他们都是用来存储字符数值小于255的字符。如果你向一个长度为20的字符的varchar型的字段中输入数据ABCDE。当你以后从这个字段中去除此数据时,取出的数据长度为5个字符型。如果输入在长度为20的char型字段中,那么当取出时,数据长度回事20个字符,字符串后面会被附加多余的空格。所以,你会发现使用varchar型字段比char型字段方便的多,使用varchar型字段时,不需要为多余的空格而操心。、
varchar型字段的另一个突出的好处是他可以比char型字段占用更少的内存和硬盘空间。当你的数据库很大时,这种内存和磁盘空间的节省将会变得很重要。
但是,char型数据处理熟读更快,有时候甚至可以比varchar型快50%。因此用户再设计数据库时应该综合考虑各方面的因素,以求达到最佳的平衡。
4.在建完数据库的时候,发现其中某一个字段写错了,但他禁止修改,怎么办?
我们可以在工具——选项——Designers中找到,阻止保存要求重新创建表的更改,的选项,更改之后就可以了。