一个学生管理系统的数据表设计及多表操作的问题,请教!

时间:2022-05-09 00:25:39
一个学生管理系统的数据表设计及多表操作的问题,请教!
设计一个学生管理系统,我凭感觉画了个图(不知道怎么画标准的ER图),有个难点:
1、做实验的时候是几个同学一组,最终要把每组同学的实验成绩集中显示出来。
例如:一个学生管理系统的数据表设计及多表操作的问题,请教!
2、要显示学生信息表,其中的“旷课次数”,“迟到次数”字段信息,是来源于“考勤表”对各条记录统计后的结果。
其中,考勤表中,考勤情况包含有“旷课”、“迟到”、“病假“等类型。不知道这样的操作怎样完成。

不知道以上表结构设计是否合理,总感觉其中的关系不好理清,也不好处理,请高手指点!先谢谢各位了!

11 个解决方案

#1


根据你还是把 每个表的结构,包含的字段,字段类型,外键梳理出来再画图。

#2


关系型数据库,你的理清关系啊
不要为了画图而画图

#3


比如你的学生做实验,出成绩,成绩在哪个表里存着呢?怎么挂到做下面了!

#4


考勤:
学号、实验号、考勤结果
学生信息:
学号、姓名、电话、……(其他个人信息)

组号、学号
实验:
实验号、名称、日期
成绩:
成绩编号、实验号、学号
(每个表第一个都是主键)

#5


看了下你的ER图,乱得不得了啊;
1 组号,旷课次数,迟到次数等,不应该是学生表的字段,解决方案:建立另一个(组-学生)表,用于保存学生与组的关系,其他类似;
2考勤表的字段“缺勤情况”,定义不明确,且与旷课次数,迟到次数的关系表述错误,可考虑添加考勤类型表;
3其他类似以上两点。

#6


旷课次数,迟到次数 是按时段累计还是什么情况。是否要记录具体时间等。都要考虑清楚

#7


表分为基础数据表和业务过程数据表。
你这个系统里,学生、实验项目、小组是三个基础数据表,其中学生和小组又有关联。
而考勤、做实验出成绩是两张业务过程表,按这个思路去做吧。把图画完整了,所有表的字段、主键、外键都画出来,我只能帮你到这里了。

#8


引用 楼主 nature023 的回复:
总感觉其中的关系不好理清,也不好处理,请高手指点!先谢谢各位了!


感觉混沌、不好的,先拆分。最后不需要拆分了,再合并。

#9


去下载个学生考勤管理系统来看看

去度娘里搜一下考勤管理系统的文档看看先

#10


引用 楼主 nature023 的回复:
要显示学生信息表,其中的“旷课次数”,“迟到次数”字段信息,是来源于“考勤表”对各条记录统计后的结果。
 其中,考勤表中,考勤情况包含有“旷课”、“迟到”、“病假“等类型。不知道这样的操作怎样完成。


阶段时间的统计表,通常先不考虑。在程序中通常先使用临时的查询语句统计出来。初级的人设计初级的软件,都不好率统计数据表!

但是真正实用的系统有许多都讲究“效率”,这是后期实现时的重构。这时候,根据不同行业的实际要求,在“动态”系统重要先保证做各种操作限制,然后才会增加数据表。例如大型的会计系统每天夜间会产生日记账(并且清帐),每月会关闭账簿(并且结账),比如果10月1日就不再允许向9月30日的账簿里加入明细账了。

你有了一定的约定,保证统计表跟明细表随时对应,于是就可以在系统中定时进行一些统计。例如每月1日凌晨1点种去统计前一个月的考勤。那么以后查询考勤数据,可以首先查询月份考勤统计表;如果是当月的,才查询明细表。

#11


初级的人设计初级的软件,都不好率统计数据表!   -->   初级的人设计初级的软件,都不考虑统计数据表!

因此你可以把“旷课次数、迟到次数”看成是多余的字段。

#1


根据你还是把 每个表的结构,包含的字段,字段类型,外键梳理出来再画图。

#2


关系型数据库,你的理清关系啊
不要为了画图而画图

#3


比如你的学生做实验,出成绩,成绩在哪个表里存着呢?怎么挂到做下面了!

#4


考勤:
学号、实验号、考勤结果
学生信息:
学号、姓名、电话、……(其他个人信息)

组号、学号
实验:
实验号、名称、日期
成绩:
成绩编号、实验号、学号
(每个表第一个都是主键)

#5


看了下你的ER图,乱得不得了啊;
1 组号,旷课次数,迟到次数等,不应该是学生表的字段,解决方案:建立另一个(组-学生)表,用于保存学生与组的关系,其他类似;
2考勤表的字段“缺勤情况”,定义不明确,且与旷课次数,迟到次数的关系表述错误,可考虑添加考勤类型表;
3其他类似以上两点。

#6


旷课次数,迟到次数 是按时段累计还是什么情况。是否要记录具体时间等。都要考虑清楚

#7


表分为基础数据表和业务过程数据表。
你这个系统里,学生、实验项目、小组是三个基础数据表,其中学生和小组又有关联。
而考勤、做实验出成绩是两张业务过程表,按这个思路去做吧。把图画完整了,所有表的字段、主键、外键都画出来,我只能帮你到这里了。

#8


引用 楼主 nature023 的回复:
总感觉其中的关系不好理清,也不好处理,请高手指点!先谢谢各位了!


感觉混沌、不好的,先拆分。最后不需要拆分了,再合并。

#9


去下载个学生考勤管理系统来看看

去度娘里搜一下考勤管理系统的文档看看先

#10


引用 楼主 nature023 的回复:
要显示学生信息表,其中的“旷课次数”,“迟到次数”字段信息,是来源于“考勤表”对各条记录统计后的结果。
 其中,考勤表中,考勤情况包含有“旷课”、“迟到”、“病假“等类型。不知道这样的操作怎样完成。


阶段时间的统计表,通常先不考虑。在程序中通常先使用临时的查询语句统计出来。初级的人设计初级的软件,都不好率统计数据表!

但是真正实用的系统有许多都讲究“效率”,这是后期实现时的重构。这时候,根据不同行业的实际要求,在“动态”系统重要先保证做各种操作限制,然后才会增加数据表。例如大型的会计系统每天夜间会产生日记账(并且清帐),每月会关闭账簿(并且结账),比如果10月1日就不再允许向9月30日的账簿里加入明细账了。

你有了一定的约定,保证统计表跟明细表随时对应,于是就可以在系统中定时进行一些统计。例如每月1日凌晨1点种去统计前一个月的考勤。那么以后查询考勤数据,可以首先查询月份考勤统计表;如果是当月的,才查询明细表。

#11


初级的人设计初级的软件,都不好率统计数据表!   -->   初级的人设计初级的软件,都不考虑统计数据表!

因此你可以把“旷课次数、迟到次数”看成是多余的字段。