软件开发数据库的设计

软件开发数据库的设计,第1张

你这个项目里面有几个控制点

每节课每台计算机只允许一人登录

学号登录,考勤

学号文件上传,同名覆盖

这样,我觉得围绕这几个控制点首先要处理登录,建立学生表,要有学号和密码(密码不要也可以)

其次是开课的问题,需要教师做一个 *** 作,某节课开始登录,并比对什么是迟到

要有一个课时表,记录是否开课,上下课时间和课程编号,这个编号很重要,后面很多地方都用。而是否开课整个表里只有当前这堂课是开的状态,别的都是关闭状态,方便程序查找。下课后教师负责关闭

有这个编号就能记录考勤

考勤表有学生学号、课程编号、计算机号和登录时间,同时可以设置辅助字段如是否缺勤、是否迟到

通过登录时间和开课时间比对,就能知道是否缺勤。而计算机号可以在登录时手工输入,也可以读取计算机的硬件信息生成

在后面是报告,因为登录时已确定学号、计算机号和课程号,这样就能进行唯一性判断,是否这台计算机上传的,是否重复登录等等都能进行控制

文件上传这个引文有了前面几个控制条件,所以很好设计了

学号、计算机号和课程号作为主键

再加上文件名和路径什么的就够了

一次实验,一个学生可能生成几条文件信息,条数就是文件数,而同名覆盖就顺理成章实现了

别的就不多说了

我来粗谈一哈

编号(自动生成)

类型(INT型,表示用户等级,如VIP等)

姓名(CHAR型)(各种用户个人信息)

。。。(各种用户个人信息,地址,EMAIL,TEL……)

简单地说就这些,如果你有特殊情况我可以帮你详细设计,有问题+QQ,185357349

数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。 在数据库领域内,常常把使用数据库的各类系统统称为数据库

《详细设计说明书》是要包括数据库设计的--数据库逻辑设计、物理建模等;这项工作不应该是架构师的职责,因为这些详细设计工作太细致了,而架构师主要应该负责技术线路选择和选型等高层次的工作,负责对整个项目层级的指导和协调。

 数据库是整个软件应用的根基,是软件设计的起点,它起着决定性的质变作用,因此我们必须对数据库设计高度重视起来,培养设计良好数据库的习惯,是一个优秀的软件设计师所必须具备的基本素质条件!

 那么我们要做到什么程度才是对的呢?下面就说说数据库设计的原则:

1、数据库设计最起码要占用整个项目开发的40%以上的时间

数据库是需求的直观反应和表现,因此设计时必须要切实符合用户的需求,要多次与用户沟通交流来细化需求,将需求中的要求和每一次的变化都要一一体现在数据库的设计当中。如果需求不明确,就要分析不确定的因素,设计表时就要事先预留出可变通的字段,正所谓“有备无患”。

2、数据库设计不仅仅停留于页面demo的表面

页面内容所需要的字段,在数据库设计中只是一部分,还有系统运转、模块交互、中转数据、表之间的联系等等所需要的字段,因此数据库设计绝对不是简单的基本数据存储,还有逻辑数据存储。

3、数据库设计完成后,项目80%的设计开发在你脑海中就已经完成了

每个字段的设计都是有他必要的意义的,你在设计每一个字段的同时,就应该已经想清楚程序中如何去运用这些字段,多张表的联系在程序中是如何体现的。换句话说,你完成数据库设计后,程序中所有的实现思路和实现方式在你的脑海中就已经考虑过了。如果达不到这种程度,那当进入编码阶段后,才发现要运用的技术或实现的方式数据库无法支持,这时再改动数据库就会很麻烦,会造成一系列不可预测的问题。

4、数据库设计时就要考虑到效率和优化问题

一开始就要分析哪些表会存储较多的数据量,对于数据量较大的表的设计往往是粗粒度的,也会冗余一些必要的字段,已达到尽量用最少的表、最弱的表关系去存储海量的数据。并且在设计表时,一般都会对主键建立聚集索引,含有大数据量的表更是要建立索引以提供查询性能。对于含有计算、数据交互、统计这类需求时,还要考虑是否有必要采用存储过程。

5、添加必要的(冗余)字段

像“创建时间”、“修改时间”、“备注”、“ *** 作用户IP”和一些用于其他需求(如统计)的字段等,在每张表中必须都要有,不是说只有系统中用到的数据才会存到数据库中,一些冗余字段是为了便于日后维护、分析、拓展而添加的,这点是非常重要的,比如黑客攻击,篡改了数据,我们便就可以根据修改时间和 *** 作用户IP来查找定位。

6、设计合理的表关联

若多张表之间的关系复杂,建议采用第三张映射表来关联维护两张表之间的关系,以降低表之间的直接耦合度。若多张表涉及到大数据量的问题,表结构尽量简单,关联也要尽可能避免。

7、设计表时不加主外键等约束性关联,系统编码阶段完成后再添加约束性关联

这样做的目的是有利于团队并行开发,减少编码时所遇到的问题,表之间的关系靠程序来控制。编码完成后再加关联并进行测试。不过也有一些公司的做法是干脆就不加表关联。

8、选择合适的主键生成策略

以上就是关于软件开发数据库的设计全部的内容,包括:软件开发数据库的设计、请问设计一个简单的客户数据库怎么设计、如何设计一个优秀的数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9378783.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存