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

本文档详细描述了一个高校考勤管理系统的各个模块设计,包括需求分析、概念结构设计、逻辑结构设计、物理设计、数据库实施和试运行。系统涵盖了用户注册登录、考勤、请假和后台管理等功能,涉及学生、教师、导员、院系领导和管理员等多种角色,实现了早操、会议、上课、活动等多方面的考勤管理。系统采用E-R图进行概念结构设计,并创建了相应的数据库表,如用户表、学生信息表、考勤人员表等,确保数据的有效管理和查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、  需求分析

前台功能模块

后台功能模块

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')

视图展示

 

 

 

自己做的 一个 考勤信息管理系统 第一章 可行性分析 1 1.1 引言 1 1.1.1 编写目的 1 1.1.2 项目背景 1 1.2 可行性研究的前提 2 1.2.1 要求及目标 2 1.2.2 条件假定和限制 3 1.3 技术可行性分析 3 1.3.1 技术的支持能力 3 1.3.2 技术的优势 3 1.3.3 技术的难点 4 1.4 经济可行性分析 4 1.4.1 投资 4 1.4.2 效益 4 1.5 社会可行性分析 5 1.5.1 法律因素 5 1.5.2 用户可行性 5 1.6 结论意见 5 第二章 需求分析 6 2.1 系统需求 6 2.2 功能需求 6 2.3 数据流图 7 2.3.1 系统顶层图 7 2.3.2 数据流程图一层分解图 8 2.3.3 数据流程图二层分解图 10 2.4 数据字典 14 2.4.1 数据流条目 14 2.4.2 数据项 16 2.4.2 加工条目 18 第三章 概念设计 22 3.1 实体之间的联系 22 3.2 E-R图 22 3.2.1 局部E-R图 22 3.2.2 整体E-R图 25 第四章 逻辑设计 26 4.1 概念模型向关系模型的转换 26 4.1.1 1:N联系的转化的关系模式 26 4.1.2 M:N联系的转化的关系模式 26 4.2 关系模式的优化 27 4.2.1 确定范式级别 27 4.2.2 实施规范化处理 27 第五章 物理设计 29 5.1 数据库的存储结构 29 5.1.1 数据库 29 5.1.2 数据库表结构 29 5.1.3 数据的存放位置设计 32 5.1.4 系统配置 32 5.2 关系模式的存取方法 33 第六章 实现运行与维护 34 6.1 数据库的建立 34 6.2 表的创建 34 6.3 视图的设计 37 6.4 存储过程的设计 38 6.5 触发器的设计 40 6.6 运行与维护 41 总结 42 参考文献 43
在Python中,同步海康考勤数据库通常涉及到网络请求、数据库操作以及可能的数据校验。如果你使用的是像MySQL或Oracle这样的关系型数据库,可以使用像`pymysql`或`cx_Oracle`这样的库进行连接;如果海康提供的数据是基于REST API,你可以借助如`requests`库来进行API调用。 以下是简化的步骤: 1. **安装依赖**:首先需要安装所需的库,例如`requests`, `pymysql`(对于MySQL)等,可以使用pip命令安装: ``` pip install requests pymysql ``` 2. **创建连接**:根据数据库类型,编写函数建立到海康数据库的连接,设置相应的凭据(用户名、密码、URL等): ```python import pymysql def connect_to_hikcameras_db(user, password, host): conn = pymysql.connect(host=host, user=user, password=password) return conn ``` 3. **获取数据**:利用连接从API或数据库查询考勤信息,这可能涉及分页或定期抓取(如有定时任务): ```python def sync_data_from_api(conn): # 使用conn对象执行SQL查询或其他HTTP GET请求 response = requests.get('http://api.example.com/attendance', auth=(user, password)) data = response.json() # 将数据插入本地数据库 ``` 4. **同步到本地数据库**:将从海康获取的考勤数据解析后,通过Python的SQL语句存储到本地数据库中: ```python cursor = conn.cursor() for entry in data: insert_query = "INSERT INTO attendance_table (field1, field2) VALUES (%s, %s)" cursor.execute(insert_query, (entry['field1'], entry['field2'])) conn.commit() # 提交事务 cursor.close() conn.close() ``` 5. **错误处理**:别忘了添加适当的错误处理,比如网络连接错误、API返回异常、数据库操作失败等。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值