适用场景:数据库开发项目、系统架构设计、数据管理方案
演讲要点:数据冗余设计优化、字段类型选择规范、预留字段规划实施
行文逻辑:优化数据冗余→规范字段类型→规划预留字段
1.尽量使用数据冗余。
随着磁盘容量的大幅飙升,这一点已经不会产生什么问题。当然冗余归冗余,不能把数据的关联弄的乱七八糟的。
本科数据库课程中学的知识直接拿来,在实际中会出大问题。满足三级范式的数据库结构会让你面对大量的.连表查询,应用程序中会用到大量的数据库访问,既繁琐(烦死你)又使程序运行速度减慢。
2.尽量不要使用varmax)类型
这一点主要是用动软代码生成器自动生成代码时,如果varchar的最大长度指定为max,在自动生成代码时,它无法生成这一最大长度,需要手动补进去。
现在感觉用个var1000)就够了。
3.使用预留字段。
数据库表(尤其是动态表格),在你把所有字段都设计好了之后,再添加几个备注字段和预留字段。
之前我觉得这样做没多大意义,因为预留字段的列名是没有实际意义的。这样程序中使用的时候就会让人费解。但现在觉得还是有必要的,很有必要的,即便在用到时需要自己十分清楚之前预留的无意义字段现在表示什么意义。不过我的第二个数据库中还是没采用,这也是遗憾之处埃
个人感觉用note1、note2、r1(r表示reserve)、r2、r3,2个备注字段和3个预留字段就足够了,再多的话就不容易记住哪个字段具体表示什么意义了,容易晕。类型就都用var200)吧。
在我看来,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。通过这次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力。
当我们这组决定做大学生就业咨询系统时,我们并没有着手写程序。而是大家一起商量这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典。当这些都准备好了之后,我们进行模块的分工。每个人都有自己的模块设计,而且写出来的代码要求可以实现相应模块的功能,得到理想的效果。当每个人都把自己的分工做好了,最后会由一个人把这些全部组合搭建在一起。我们使用的是html和php相互嵌套使用,当一个系统做好了之后,我会好好地把程序都看一遍,理会其中的奥秘。
我所负责的是数据库的备份和还原还有一些界面的实现。还记得自己刚接触html的时候,觉得很感兴趣,所以有一段时间几乎到了痴迷的程度。然而php是我刚接触不久的一种编程语言。不过觉得它的功能真的很强大,可以开发出很多大型的系统。但是在做备份和还原的时候,要考虑的东西还是很多的。当我遇到错误的时候,感到很受打击。值得欣慰的是,在同学的帮助和大量参考书的查阅下,我把自己的`模块做好了。这就是我收获最大的地方。而且,我明白了遇到困难永不放弃的重要性,我知道了团队合作的重要性,我领悟了只有坚持不懈才会取得胜利。
知识的获得是无止境的,只要你想学,只要你行动,没有什么会难倒我们的。回首这一个多星期的课程设计,我很欣慰。因为我有了动力,有了勇气。谢谢老师对我们的不懈帮助,谢谢学校给了我们这一次实践的机会,也谢谢组员们的关怀。这些美好的回忆美好的东西将永远伴随着我。
适用场景:教学实验总结、项目实训总结、技术培训总结
演讲要点:需求分析问题反思、数据输入错误处理、存储过程设计优化
行文逻辑:分析需求→设计流程→输入数据→编写存储过程→优化触发器
我在这次试验中参与了“需求分析”、“表中数据输入”,“存储过程”和“触发器”的设计。在“需求分析”阶段我们遇到的主要问题有用户需求的分析和流程图的设计。进行用户需求的分析时,由于时间和范围的限制我们很难对用户的需求做出准确全面的了解分析,因此不可避免的会存在这样或那样的缺陷,这就需要我们在不断的改进。在流程图的设计中,我们遇到的问题有数据在系统中的流向问题,在一些数据上我们存在着数据流向错误,还有的数据之间的流向是双向的,但我们没有在流程图中体现出来。经过老师的指点后我们及时的做出了修改,同时还明白了一张表格设计出来关键在与有没有人看,如果没有人看那这张表格就是多余的。因此表格设计的关键在于明确要给谁看。在实验过程中我明白了需求分析是数据库设计的起点,也是整个设计过程的基础,需求分析做得不好,开发出的系统的功能可能就会与用户要求之间存在差距,甚至有可能导致整个工作从头再来,因此一定要保证需求分析准确全面。
在“表中数据输入”过程中,当向借阅信息表输入数据时虽然没设还书日期为必填字段,也没设默认值。但即使没输还书日期,表中也会自动生成一个日期,而且还不能删除。我们讨论了很久也没得出原因,请教老师后才知道在我们的借阅信息表中字段图书编号和图书名称存在部分函数依赖导致出错。我们删除了图书名称一列,并运行成功。在这个问题上更让我们明白了需求分析的重要性。
在“存储过程设计”和“触发器”的设计中我们也遇到了一些问题,最主要的是不清楚应该怎样用代码来实现我们想要系统完成的功能。这主要是由于我们对知识掌握的不全面。因此我们只能写一些简单的命令或通过网络搜索来实现,但这也导致了我们想的功能和实际做出来的功能存在一些差距。同时我们也在设计过程中遇到了一些具体的问题。例如,在设计“未还图书信息”存储过程时,我们想要输出未还图书的借书证号、图书编号、姓名、图书名称。但运行后发现它输出了很多重复的项,而且他们的借书证号全是一样的,虽然这个借书证号是存在未还图书的借书证号,但她把所有人的姓名全输出来了。一开始我们不知道这是为什么,试了很多次还是不行,最后如果只要求输出借书证号和图书编号又能运行成功,因此我们想应该是在命令中没有体现两表中的关系,违背了关系的完整性。于是我们又在条件中输入了“借阅信息表.借书证号=读者信息表.借书证号,借阅信息表.图书编号=图书信息表.图书编号”命令运行成功。
从这些问题中我看到了自己的不足,这些细节上的问题更需要我们细心的对待。
实训总结
通过项目实训我体会最深的是团队合作的重要性,我们所做的工作都不是
独立的,不能只想到自己。当遇到问题不能自己解决,通过大家一起完成时,那份快乐也是加倍的。在实训过程中我明白了我们不应该只想着如何避免难题而应学着解决它。更重要的是平时就应该积累知识。