现在自己正在经历着第二次做机房收费系统,总体上的进度相对其他人算是比较慢,但是收获颇丰.
经历过第一次做机房收费系统,那时候对数据库的知识几乎就没有什么感觉,也就是在之前大概的学习了一个关于SQL 的视频然后就上手用vb实现机房收费系统.当时的数据库几乎称不上什么设计,就是自己想到什么就往表里添加什么.可是后来麻烦的事情来了,不是数据类型需要修改,就是需要增加一个字段,或者删除一个字段,同时还有好多表的内容重复.也就是数据冗余.
遵循提高班N+1 的学习理念,这次第二次做机房收费系统要对数据库相关的知识进行一下学习和提高.当然,我接下来所展示的第二次数据库设计肯定有很多不足的地方!争取不断的完善.
在此之前成云给我们讲关于数据库三范式的设计,当时看着一堆公式概念什么的,自己听着也是云里雾里的,不过大概的说的什么内容自己还是比较清楚.在听完讲课之后自己对三范式作了一个初步的总结,具体内容可以见博客
数据库三范式.
在这里再简单的描述一下三范式
第一范式(1NF) :不同于主键的所有字段都必须依赖于主键.
第二范式(2NF):所有的非键值必须完全依赖于主键,也就是不允许产生部分依赖.(部分依赖就是字段完全依赖于符合主键的一部分)
第三范式(3NF):属性不依赖与其他非主属性,也就是消除传递依赖.
为什么要用范式呢?我的理解是对数据库设计的一种规范化,就像是为什么我们这个社会会有法律呢?同样是对人类行为的规范,让人类的社会更有秩序.数据库的规范化使物理空间会更好的组织和利用.
先看一下自己第一次在收费系统中所做的学生信息表为例,当是设计的时候也没有想那么多也就是按照自己的想法把内容表填上,也就是以下的表.
可以看出自己之前所设计的学生信息表里的内容没有符合第二范式,一般对于第一范式而言我们刚开始所做的表,上表中没有实现非键值完全依赖主键.
修改后将学生信息表分为两个表:
表关系如下:
其他的表也做了一些相应的修改.添加了一些关系图,这是自己的尝试在数据库设计方面,会有一些不足的方面,所以才需要继续的学习和提高.在不断的尝试中去学习更多的知识.在N+1中 不断提高自己!
分享到:
相关推荐
机房收费管理系统 主要功能模块: (1) 登录模块 (2) 上机管理模块 说明:上机登记时,余额不足3元或卡处于挂失状态,则拒绝登记 每位同学的一次上机形成一条记录,每36S遍历一次上机记录表,对表中所有正上机...
机房收费系统的概要设计说明书,根据软件需求说明,建立目标系统的总体结构和模块间的联系;定义数据库和数据结构;定义目标系统的外部接口包括用户界面;设计系统的安全机制和出错处理机制;定义系统运行,制定组装...
机房收费管理系统,这是一份课程设计,使用的是C语言编程,里面除了有源代码之外还有很多总结和对于题目的分析。这很不错的参考资料
基于node.js的机房收费管理系统(含数据库脚本).zip 大学生课程设计 基于node.js的课程设计 自己大二写的课程设计
软件学院机房管理系统数据库课程设计
数据库机房管理系统课程设计 数据库机房管理系统
机房收费系统在详细设计过程中,需要做的文档
机房收费系统中进行概要设计时,所需要的文档
VB版机房收费系统,VB版机房收费系统,VB版机房收费系统,VB版机房收费系统,VB版机房收费系统,
在VS2013环境下,编写的C语言Windows程序设计,机房收费管理系统。代码仅仅使用C语言调用Windows API函数和MYSQL数据库专用库文件编写。有C语言基础的,简单易懂。代码没有优化,思路很清晰。没有省略的代码,我都...
该文档包括数据库的静态设置和动态设置,里面可能有些不对的地方,大家可以看一下这个思路。
机房收费系统工作总结.pptx
基于C语言实现dos界面简单的机房收费管理系统.zip 大学生课程设计 基于C语言的课程设计 自己大二写的课程设计
此机房收费系统的实现使用了vb.net+sql server。采用MVC三层架构,及一些设计模式,其设计采用UMl标准……
基于C的机房收费管理系统,满足课程设计的基本要求,简单易懂
cards.txt 是存储上网卡记录用的 records.txt 是存储上网记录用的 初始都为空 ...list<type> A; 是用来创建一个类型为type的链表A A.push_back(t) 是把变量t存入链表 A.erase(t) 是把变量t删除 for(list<Card>::...
vb版,机房收费系统
机房管理系统后台数据库设计毕业设计论文.doc
为了提高机房管理者的管理效率和减轻管理者的劳动强度,提高机房的利用率,发挥计算机的方便性和快捷性,提出了机房自由上机收费管理系统的设计方案。 机房自由上机收费系统是典型的数据库管理系统,其开发主要包括...