《学生考勤信息管理系统》数据库课程设计

article/2025/11/6 11:30:31

目录

一、  需求分析

前台功能模块

后台功能模块

1.1 功能模块的划分及介绍

1.2 实体及重要属性

1.3 业务流程图

二、 概念结构设计

 2.1. E-R图的设计

三 、逻辑结构设计

 表设计

   User1-用户表

   Student-学生信息表

   College-院系信息表

    Attendance personnel 考勤人员表

    Class 班级信息表

    Activity-活动信息表

    meeting-会议信息表

    exercise-早操信息表

     course-课程信息表

四、物理设计

 4.1 数据库的存放位置和存储结构

         4.1.1 数据库的存放位置

 4.1.2 数据库的存储结构

4.2 索引设计

        表2  索引表

五、数据库实施

  5.1 创建数据库

  5.2 创建表

         (1)用户表

(2)学生信息表

(3)College-院系信息表

  (4)Attendance personnel 考勤人员表

(5)Class 班级信息表

 (6)activity-活动信息表

 (7)meeting-会议信息表

 (8)exercise-早操信息表

 (9) course-课程信息表

六、数据库的试运行

  6.1 填入示例数据

视图展示


一、  需求分析

本篇设计文档包括前台功能模块和后台功能模块

前台功能模块

后台功能模块

1.1 功能模块的划分及介绍

本系统包括四个功能模块,注册登录考勤后台管理请假四个功能模块。

1..注册模块:本功能模块设计涉及新用户的注册,和用户的登录,用户分为六大类,学生,任课教师,导员,院系领导,学校领导,系统管理员,他们可以通过自己的学号,和职工号进行注册,后台根据他们的身份不同会赋予不同的权限.

2. 考勤模块:本功能模块根据学校的实际需求又分为了四个小的板块

         2.1:早操考勤:本模块的功能是学生早操考勤信息的实现,学生可以查看自己本学期的早操出勤情况,导员,院领导,校领导可以查看自己所管辖范围内的学生的早操出勤情况

        2.2:开会考勤:本模块的功能是学生开会考勤信息的实现,学生可以查看自己本学期的开会出勤情况,导员,院领导,校领导可以查看自己所管辖范围内的学生的开会出勤情况

        2.3:上课考勤:本模块的功能是学生上课考勤信息的实现,学生可以查看自己本学期的上课出勤情况,导员,院领导,校领导可以查看自己所管辖范围内的学生的上课出勤情况

        2.4:活动考勤:本模块的功能是学生活动考勤信息的实现,学生可以查看自己本学期的活动考勤情况,导员,院领导,校领导可以查看自己所管辖范围内的学生的活动考勤情况

最终可以根据这四项考勤的情况分别生成每一个院的,每一个班的,每一位同学的量化积分,学校可以根据这个评定优秀院系,优秀班集体,老师可以根据量化积分对学生进行评优评先的推选

3 .请假模块:本模块的功能是在线请假的实现管理,学生有特殊情况导致不能按时上课,上操,开会等可以用到这个功能,这个模块主要设计三大类用户,学生,导员,院系领导用户,学生通过此模块进行在线请假及查看请假记录信息,导员在线审批学生请假,及查看学生请假记录信息,院系领导在线审批学生时间的请假及查看请假记录信息

4.后台管理模块:本模块的功能实现整个系统数据的同步更新及维护,只涉及系统管理员用户.系统管理员动态管理学生信息,课表安排,会议安排,早操安排,学年安排等,是将数据进行整合推送到前台进行展示,是整个系统实现的基础

1.2 实体及重要属性

●学生:学院,专业,班级,姓名,性别,学号,身份证号等信息。

●考勤人员:部门,姓名、院系,班级,学号,等信息。

●院系:院系名称,院系领导等信息

●班级:年级、班级名称、专业名称等信息

●活动:活动名称、活动时间、活动地点等信息

●会议:会议名称、会议时间、会议地点等信息

●早操:上操时间,上操地点等信息

●课程:课程号,课程名,授课老师,课时,上课时间等信息

通过分析,本系统中各实体之间的联系如下:

●院系-学生:一个院系可以有很多学生,但一个学生只能属于一个院系,所以院系和学生是一对多的关系

●院系-考勤人员:一个院系可以有很多考勤人员,但一个考勤人员只能属于一个院系,所以院系和考勤人员是一对多的关系

●院系-班级:一个院系可以有很多班级,但一个班级只能属于一个院系,所以院系和班级是一对多的关系

●考勤人员-班级:一个考勤人员只能考察一个班级,一个班级可以同时被过个考勤人员考察,所以考勤人员和班级是一对多的关系

●活动-学生:一个活动可以有多个学生参加,一个学生特定时间只可以参加1个活动,所以活动和学生是1对多的关系

●会议-学生:一个会议可以有多个学生参加,一个学生特定时间可以参加1个会议,所以会议和学生是1对多的关系

●早操-学生:一个早操队伍可以有多个学生参加,一个学生特定时间只能在一个早操队伍中

●课程-学生:一门课可以被多个学生一块上课,一个学生特定时间内只可以上一节课,所以课程和学生之间是1对多关系

1.3 业务流程图

全局流程图

 请假子模块流程图

二、 概念结构设计

      2.1. E-R图的设计

三 、逻辑结构设计

   表设计

        User1-用户表

    

字段

数据类型

含义说明

空值情况

备注

Account1

Varchar(20)

账号

Not null

主键

Type

Varchar(20)

登录类型

NOT NULL

教师,学生,院系领导,管理员

Password1

Varchar(20)

密码

NOT NULL

Student-学生信息表

字段名

数据类型

含义说明

空值情况

备注

StudentID

varchar(20)

学号

Not null

主键

Sname

varchar(20)

姓名

NOT NULL

SSex

varchar(20)

性别

NOT NULL

男,女

Class

Varchar(20)

班级

NOT NULL

College

Varchar(20)

学院

NOT NULL

Specialty

Varcahr(20)

专业

NOT NULL

ID number

Char(10)

身份证号

NOT NULL

Mid

Varchar(20)

会议编号

 NULL

外键(对应会议表)

Aid

         Varchar(20)

活动编号

 NULL

外键(对应活动信息表)

Cid

Varchar(20)

课程编号

 NULL

外键(对应课程信息表)

Exercise time

Char(20)

上操时间

 NULL

外键(对应早操表)

Exercise location

Varchar(20)

上操地点

 NULL

外键(对应早操表)

Join time

Char(20)

参加时间

 NULL

Where the attendendance

bit

是否出勤

NULL

0,1

Where the leave

bit

是否请假

 NULL

0,1

College-院系信息表

字段

数据类型

含义说明

空值情况

备注

Collegename

Varchar(10)

院系名称

Not null

主键

College leade number

Varchar(20)

院系领导职工号

NOT NULL

College leadename

Varchar(20)

院系领导名字

NOT NULL

ClassID

Varchar(20)

班级编号

Not null

外键(对应班级表)

Attendance personnel 考勤人员

字段

数据类型

含义说明

空值情况

备注

APID

Varchar(50)

考勤人员学号

NOT NULL

主键

Department name

Varchar(20)

部门名称

NOT NULL

Aname

Varchar(4)

姓名

NOT NULL;

Collegename

Varchar(20)

学院名称

NOT NULL;

Classname

Varchar(20)

班级名称

NOT NULL;

Class 班级信息

字段

数据类型

含义说明

空值情况

备注

ClassID

Varchar(20)

班级编号

NOT NULL

主键

Classname

Varchar(20)

班级名称

NOT NULL

Grade

int

年级

NOT NULL;

19,20,18,..

APID

Varchar(20)

考勤人员学号

NOT NULL;

外键(对应考勤人员表)

majorname

Varchar(20)

专业名称

Not null

Activity-活动信息表

字段

数据类型

含义说明

空值情况

备注

AID

Varchar(20)

活动编号

NOT NULL

主关键词

        Aname

Varchar(20)

活动名称

NOT NULL

Atime

Varchar(20)

活动时间

NOT NULL

Alocation

Varchar(20)

        活动地点

Not Null

meeting-会议信息表

字段

数据类型

含义说明

空值情况

备注

MID

Varchar(20)

会议编号

NOT NULL

主关键词

       Mname

Varchar(20)

会议名称

NOT NULL

Mtime

Varchar(20)

会议时间

NOT NULL

Mlocation

Varchar(20)

       会议地点

Not Null

exercise-早操信息表

字段

数据类型

含义说明

空值情况

备注

Etime

Varchar(20)

早操时间

早操时间地点共同组成主键不能null

早操时间地点共同构成主键

Elocation

Varchar(20)

早操地点

Not Null

course-课程信息表

字段

数据类型

含义说明

空值情况

备注

CID

Varchar(20)

课程编号

NOT NULL

主键

        Cname

Varchar(20)

课程名称

NOT NULL

Ctime

Varchar(20)

上课时间

NOT NULL

cteacher

Varchar(20)

  授课老师

Not Null

ckeshi

varchar

课时

Not Null

四、物理设计

 4.1 数据库的存放位置和存储结构

    4.1.1 数据库的存放位置

            D:\考勤app

    4.1.2 数据库的存储结构

创建的数据库为考勤app,有两个文件组,一个是主文件组primary,里面有个文件,分别是A1,另一个是次要文件组secondary,里面有次要文件A2最后是日志文件A3 表存放于主文件组中。

4.2 索引设计

        表2  索引表

表名

建立索引的字段

类型

列值是否唯一

user(用户表)

Account (账号)

聚集索引

Student学生表

StudentID (学号)

聚集索引

Attendancepersonnel (考勤人员

APID(考勤人员学号)

聚集索引

Collecg(院系信息表

Collegename(院系名称)

聚集索引

Class (班级信息

ClassID(班级编号)

聚集索引

activity活动信息表

AID(活动编号)

聚集索引

meeting-会议信息表

MID(会议编号)

聚集索引

exercise-(早操信息表

Etime Elocation(早操时间,地点)

聚集索引

course-(课程信息表)

CID

聚集索引

五、数据库实施

  5.1 创建数据库

use master 

go 

create database 考勤app

on primary 

(

  name = a1_mdf,

  filename  = 'D:\考勤app\a1.mdf',

  size = 10mb,

  maxsize = 50mb,

  filegrowth =1mb

), 

filegroup secondry 

(

  name = a2_mdf,

  filename = 'D:\考勤app\a2.ndf',

  size =10mb,

  maxsize = 50mb,

  filegrowth  = 1mb

)

log on 

(

  name = a3_ldf,

  filename = 'D:\考勤app\a3.ldf'

)

5.2 创建表

(1)用户表

use 考勤app

go 

create table user1

( 

  Account varchar(20) not null ,

  type1 varchar(20) not null,

  password1 varchar(20) not null

  constraint pk_user primary key(account)

)

(2)学生信息表

create table student 

(

  Studentid varchar(20) not null,

  sname varchar(20) not null,

  ssex  varchar(20) not null,

  class  varchar(20) not null,

  colleage  varchar(20) not null,

  specialty  varchar(20) not null,

  idnumber  char(10) not null,

  mid  varchar(20) ,

  aid  varchar(20) ,

  cid  varchar(20) ,

  exercisetime char(20) ,

  exerciselocation varchar(20) ,

  jointime  char(20) ,

   wherethrthrattendendance bit,

   wheretheleave bit

   constraint pk_student primary key(studentid),

    constraint fk_meeting_student foreign key(mid) references meeting(mid),

constraint fk_activity_student foreign key(aid) references activity(aid),

constraint fk_course_student foreign key(cid) references course(cid)

)

(3)College-院系信息表

create table college

( 

  collegename varchar(10) not null,

   collegenameleadenumber varchar(20) not null,

    collegeleadename varchar(20) not null,

 classid varchar(20) not null,

  constraint pk_college primary key(collegename),

 constraint fk_course_college foreign key(classid) references class(classid)

)

)

(4)Attendance personnel 考勤人员

create table attendancepersonnel

(

 apid  varchar(50) not null,

 departmentname varchar(20) not null,

 aname varchar(4) not null,

 collegename varchar(20) not null,

 classname varchar(20) not null

   constraint pk_attendancepersonnel primary key(apid),

)

(5)Class 班级信息

create table class

(

 classid  varchar(20)not null,

 classname varchar(20) not null,

 grade int not null,

 apid varchar(20) not null,

 major varchar(20) not null,

  constraint pk_class primary key(classid),

 constraint fk_attendancepersonnel_class foreign key(apid) references attendancepersonnel(apid)

)

(6)activity-活动信息表

create table activity 

(

 aid varchar(20) not null,

 aname varchar(20)not null,

 atime varchar(20)not null,

 alocation varchar(20)not null,

 constraint pk_activity primary key(aid)

)

(7)meeting-会议信息表

create table meeting 

(

 mid varchar(20) not null,

 mname varchar(20) not null,

 mtime varchar(20) not null,

 mlocation varchar(20) not null,

 constraint pk_meeting primary key(mid),

)

(8)exercise-早操信息表

create table exercise 

( 

  etime varchar(20) not null,

  elocation varchar(20) not null

  constraint pk_exercise primary key(etime,elocation),

)

9 course-课程信息表

 create table course 

(

  cid   varchar(20) not null,

  cname   varchar(20) not null,

  ctime   varchar(20) not null,

cteacher   varchar(20) not null,

Ckeshi varchar(20) not null

  constraint pk_course primary key(cid),(主键创建)

六、数据库的试运行

  6.1 填入示例数据

说明:使用insert语句向表中添加必要数据。

use 考勤app 

go 

insert into activity(aid,aname,atime,alocation)

values('a1234','操场汇演','20220317','操场')

insert into attendancepersonnel(apid,departmentname,aname,collegename,classname)

values('2002160102025','体育部','薛豪','信息工程学院','大数据02')

insert into class(classid,classname,grade,apid,major)

values('1','大数据02','20','2002160102025','大数据')

insert into college(collegename,collegenameleadenumber,collegeleadename,classid)

values('信息工程学院','2020222','刘卫民','1')

insert into course(cid,cname,ctime,cteacher,ckeshi)

values('3308','数据库系统原理','20220502','李明义','48')

insert into exercise(etime,elocation)

values('20220503','操场')

insert into meeting(mid,mname,mtime,mlocation)

values('101-101-101','防诈骗宣讲会','20220405','大礼堂')

insert into student(studentid,sname,ssex,class,colleage,specialty,idnumber,exercisetime,exerciselocation,jointime,wherethrthrattendendance,wheretheleave)

values('2002160102025','薛豪','男','大数据02','信息工程学院','大数据','410720200201015730','20020205','操场','20220104','1','0')

insert into student(studentid,sname,ssex,class,colleage,specialty,idnumber,mid, jointime, wherethrthrattendendance,wheretheleave)

values('2002160102024','小明','男','大数据02','信息工程学院','大数据','410720200201015721','101-101-101','20220401','1','0')

insert into student(studentid,sname,ssex,class,colleage,specialty,idnumber,aid, jointime, wherethrthrattendendance,wheretheleave)

values('2002160102023','小红','女','大数据02','信息工程学院','大数据','410720200201015722','a1234','20220406','1','0')

insert into student(studentid,sname,ssex,class,colleage,specialty,idnumber,cid, jointime, wherethrthrattendendance,wheretheleave)

values('2002160102022','小花','女','大数据02','信息工程学院','大数据','410720200201015713','3308','20220407','1','0')

insert into user1(Account,type1,password1)

values('2597730259','教师','111111')

insert into user1(Account,type1,password1)

values('1111','学生','123456')

insert into user1(Account,type1,password1)

values('11','院系领导','1212')

insert into user1(Account,type1,password1)

values('1','管理员','12')

视图展示

 

 

 


http://chatgpt.dhexx.cn/article/BVOJm0Cd.shtml

相关文章

多个div在同一行显示

使用float:left&#xff0c;也可以使用display : inline-block&#xff0c;可以使多个div在同一行显示。 <div class"search_row"><div class"form-group" style"float:left" > <%-- 通过左浮动使多个div在一行显示--%&g…

HTML如何让两个div并排在一行,如何实现两个或多个div并列于一行

div是块状元素&#xff0c;默认是独占据一行。 但是&#xff0c;如何让两个或多个块区域并列于一行&#xff1f; 块状元素有一个很重要的“float”属性&#xff0c;可以达成这种效果。float 属性也被称为浮动属性&#xff0c;这个词非常形象。 对前面的div元素设置浮动属性后&a…

两个div在一行显示

原因&#xff1a;div为块级元素&#xff0c;默认占一行高度 解决方法1&#xff1a;两个div都添加样式 display&#xff1a;inline-block&#xff1b;&#xff08;如值为inline&#xff0c;设置宽高失效&#xff0c;div靠内容撑起&#xff09; 代码&#xff1a; <style>…

html如何在同一行显示两个div?

代码&#xff1a; <div style"background: blue;float:left">aaa </div> <div style"background: green;float:left">bbb </div>效果&#xff1a;

在HTML中如何让两个图像(div)不换行的显示在一起

代码如下 示意图如下 在两个box后面加入float即可

怎么把两个div一左一右放

怎么把两个div一左一右放 1.代码 <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <head><title>Title</title> </head> <body> <div style"width:150px;height:50px;margin:0…

css 并排放置两个div

写代码时遇到了并排放置两个div的需求&#xff0c;于是总结了一下&#xff0c;有以下几种方法可以实现&#xff1a; &#xff08;1&#xff09;设置浮动&#xff1a; a&#xff09;两个div都设置为左浮动&#xff1a; <!DOCTYPE html> <html> <head><…

【HTML】把两个div的内容放置在同一行

使用float属性把两个div的内容放置在同一行&#xff1a; <html> <head> </head> <body><div ><div style"float:right;">我在右侧</div><div>我在左侧</div></div> </body> </html>结果图&…

css如何让两个div并列在同一行

让两个Div并排显示的方法有很多&#xff0c;使用display的inline属性、通过设置float来让Div并排显示都可以实现&#xff0c;感兴趣的朋友可以参考下本文 让两个Div并排显示 一、使用display的inline属性 代码如下 二、通过设置float来让Div并排显示 代码如下 三、对于两个d…

Web前端培训:两个div在同一行可以实现吗?

我们在写页面的时候经常会遇到需要将两个div盒子同行显示的情况&#xff0c;那么“两个Div同行显示”该如何显示呢?一般两个div同行显示可以用float: left和display: inline_block来实现&#xff0c;下面我们分别介绍。 首先我们先来看&#xff0c;没有同行显示的两个div什么…

将两个或多个div放在同一行

1.先画出三个大盒子 2.1在style属性中添加display:inline-block,结果如图&#xff1a; 但是使用该方法盒子与盒子间的默认缝隙是不能修改的&#xff0c;通常我们会使用以下的方法实现两个以上的盒子的摆放 2.2在style属性中添加float&#xff1a;left&#xff1b;将元素移到左…

如何让两个div处于一行

我们知道 div是块级元素,是独占一行的.一般情况下,两个相邻的div是不会处于一行的 例如: Html代码 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>让两个div处于同一行</title&…

1、RH850时钟源及配置

一、时钟源 系统时钟源有5种&#xff1a; 外部主晶振8M-24M。(main osc) 外部副晶振32.768KHz。 &#xff08;sub osc&#xff09; 内部高速晶振8M。(high speed int osc) 内部低速晶振240KHz。(low speed int osc) PLL倍频器。 Note 1. 外部副晶振只有 144 pin and 17…

【经验】RH850 RS-CANFD接收滤波配置

芯片型号&#xff1a;RH850/F1KM-S1 不同PIN封装形式所支持的CAN通道数量不同&#xff0c;RS-CAN通道数量最多可支持6路。 目录 一、FLECCTR&#xff08;接收规则Entry控制寄存器&#xff09; 二、FLCFG0&#xff08;接收规则配置寄存器0&#xff09; 三、FLCFG1&#xff08…

瑞萨RH850 CS+环境下设置堆和栈空间

目录 1、设置栈空间 2、设置堆空间 嵌入式软件开发离不开对堆和栈的操作。 栈由操作系统自动分配和释放 &#xff0c;存放函数的参数值、局部变量的值等。通常都是被调用时处于存储空间中&#xff0c;调用完毕立即释放。 堆由开发者手动分配和释放&#xff0c; 若开发者不释…

基于IAR for RH850的瑞萨RH850 FCL库用法介绍(二)

版权声明 email&#xff1a;1256153255qq.com website for get 瑞萨RH850F1x开发板和瑞萨E1仿真器 认真的朋友会发现&#xff0c;我的上一篇博文《基于IAR for RH850的瑞萨RH850 FCL库用法介绍》在最后留下了一个bug&#xff0c;就是当FCL执行ERASE或WRITE时&#xff0c;返回的…

5、RH850 F1 定时器TAUJ功能和配置

TAUJ定时器为RH850较为常用的定时器&#xff1a; &#xff08;1&#xff09;定时器计时是通过计数来实现的&#xff0c;定时器内部有一个计数器&#xff0c;这个计数器根据时钟&#xff08;这个时钟来自于ARM的APB总线&#xff09;来工作。每隔一个时钟周期&#xff0c;计数器…

13、RH850 F1 选项字节和看门狗

前言: 选项字OPTION配置是RH850的一项重点&#xff0c;用户手册对选项字的配置介绍很少&#xff0c;这篇文章将主要针对选项字和看门狗的配置进行讲解。 一、选项字特性 闪存的选项字节是一个扩展区域&#xff0c;并保存用户为各种目的指定的数据。由选项字节指定的外围模块等的…

6、RH850 F1 AD转换功能和配置

前言: 上文完成了RH850的TAUJ定时器配置&#xff0c;此章我们将讲解RH850的ADC功能。 AD转换就是将时间连续和幅值连续的模拟量转换为时间离散、伏值也离散的数字量。使输出的数字量与输入的模拟量成正比。AD转换的过程有四个阶段&#xff0c;即采样、保持、量化和编码。 采样是…