考勤数据库设计
‘壹’ 求考勤表的数据库设计思路,要求方便统计出勤天数。我用的是SQL
如果你这个是最简单的考勤记录,不涉及到三班倒和加班之类的,那么一个最简单的表是这样
员工表(不用说了吧,基本信息)
记录表(日期、员工号、开始时间、结束时间、出勤情况)
如果自动打卡机,获取的就是工号、日期、时间。你通过程序判断每个人当天最小和最大时间,写到记录表里面
如果当天开始时间和结束时间都有,而且你还能根据时间段判断迟到、早退什么的,然后在出勤情况中写上相应信息
后面想怎么统计都用这个表来完成
比如说每个月出勤天数 select sum(*) from 记录表 where 日期在指定月范围 and 出勤情况 = '出勤'
月报表等等都能通过语句加上适当的循环来实现
是不是给你说得有点复杂?那你就别考虑打卡机和迟到早退,更简单了,呵呵
‘贰’ 考勤表如何做
1.先在表上留三行空白,在第四行写个名字。
‘叁’ c#考勤设计如何把一次刷卡记录表示为上下班记录
假定数据库有
id(自增序号)
user(用户名)
am(上午打卡时间)
pm(下午打卡时间)
createtime(默认值getdate(),记录创建时间
这五个字段
当打卡时, 取当前时间至dt.
如果dt为有效的上午或者下午打卡时世银盯间,则进行下一步,否则提示不为有效打卡时间。
假定当前搏羡用户为curruser
从数据数查询出curruser今天的打卡数据(即createtime距离今天0点不超过24小时),假定如果没有找id为0,找到了id则为对应的记录号。
if dt为有效上午打卡时间
{
如果id=0 则插入数据(插入数据包括user,am)
否则如果id>0,搜和则表示用户今天已经打过卡了
}
else if dt为有效下午时间
{
如果id=0 则插入数据(插入数据user,pm);
否则如果id>0,则查询id对应的数据的pm是否为空值,如果为空则更新id那一条的pm,如果不为空则表示用户下午已经打过卡了。
}
‘肆’ 如何设计一个简单的学生考勤系统 C#+SQL 可以提示下,数据库如何设计
简要说下,这个同学还是要自己动手:
数据库设计为最少3个表:
1. Subjects(课首雹者程),包含 ID,任课老师,学生人数
2. Students, 包含ID, 姓名,班级,等相关人员信息的字段;
3. Attendance(出勤表),包含ID, 课程的ID,出席的学生ID,出勤时间,等。
可以看到肆隐“出勤”表中将“课程”,“学生”共者薯三个表联系起来了,分别通过他们各自的ID进行关联。
‘伍’ Access数据库表如何设计,可以让ID列自动编号
1、备份ACCESS数据库(这个是必须的)
2、打开数据库,右键点击要修改ID值的表A,打开“设计视图”,将ID字段的数据类型由“自动编号”改为“数字”,关闭保存。
3、然后打开表A,修改ID值,也可以修改已存在的其他数据。修改完毕后关闭表。(此刻ID字段是不能改回“自动编号”数据类型的)。
4、右键单击表A,选择“复制”,然后右键点一下空白处,选择“粘贴”,表名随便写,如“AA”,下面选择“只粘贴结构”,然后点确定生成新表AA。
5、选中表AA,打开“设计视图”。把ID字段的数据类型改为“自动编号”,关闭保存。(此刻表AA是没有数据的,所以可以修改成功)。
6、右键单击表A,选择“复制”,然后右键点一下空白处,选择“粘贴”,表名写刚生成的新表“AA”,下面选择“将数据追加到已有的表”,最后点确定。
7、然后将原表A改名为A111,将表AA改名为A。这样就实现了用新表替换旧表,仅ID值修改,其他内容不变。(提示:原来的表A可以不用改名,直接删除。但是我建议先改名作为备份,等新表测试成功后再删除)。
‘陆’ 求问教务系统SQL数据库 。考勤 请假 节假日之类要怎么设计数据库,(用户,用户中还有分组=部门,然后有)
1.员工信息表(包括 职务(级别),入职时间(工龄),部门等)
2.部门信息表(分组表)
3.工时总表(记录每个月的实际出勤数)(员工号,年度,1月工时,2月工时.....12月工时)
4.休假总表(记录各种假的基数,已休数,剩余数)(员工号,年度,年假基数,上年剩余,已休天数,未休天数,病假基数已休天数,未休天数,其它假已休天数)
5. 考勤明细表(员工号,考勤日期,工时数....)
6. 休假明细表(员工 号,休假日期,休假类型,休假小时数)
7. 休假类型表
8. 工作日表(只需要设置发生状态变化的,周一至周五缺省认为是工作日,周六日为休息日,如10月1日是周一,要设为非工作日,如果刚好是周六,则不需要设置)
9.用户表(包括 权限设置等)
‘柒’ 如何设计学生考勤数据库
1. MVC 设计模式设计模式概述
1.1 MVC 设计模式
MVC 设计模式是一种着名的软件开发设计模式,它是模型、视图、控制器( Mode1.View.Controller )缩写.模型封装了用户数据和处理数据的业务逻辑;视图提供了用户界面,将用户输入数据传递给控制器或将模型数据显示给用户;控制器连接了模型和视图,判断请求交给哪个模型,调用视图显示模型处理用户请求结果.
MVC 设计模式将应用程序进行了分层,视图和模型通过控制器连接,从而减少了用户界面和业务逻辑之间的耦合,使程序设计更加清晰、灵活,也提高了软件的可扩展性、可维护性.
1.2 Struts 框架
Struts 是基于的MVC模式应用框架,遵守了 J2EE 的Servlet、JSP 等技术规范,并且根据J2EE的特点做了相应的变化和扩展,是J2EE 体系架构的一种轻量级实现.
在Struts 框架中,控制器由 ActionServlet 和Action 类以及 Struts.config.xml 配置文件实现.ActionServlet 是Struts 框架的核心控制组件, 所有的用户请求都被映射到 ActionServlet, 由ActionServlet 根据配置文件中的定义将控制转移到指定的 Action 类.Action 类是用户请求与业务逻辑之间的桥梁,它执行一个 execute()方法并返回一个ActionForward对象,当ActionServlet 接收到该对象后,根据 Struts config.xml 中的配置信息将请求转发.Struts 框架中的视图主要由 JSP 页面组成.ActionForm 是Struts 在视图层的一个核心组件,它是专门用来在视图层和控制层之间传递表单数据的 DTO(Dam Transfer Object,数据传输对象),它还包括了用于数据验证的 validate()方法和用于数据复位的 reset()方法.在Struts 应用程序中,开发人员可以选择 javaBean、Hibernate、EJB 等组件来实现 Struts 框架中的模型.
2.Hibernate 持久化技术
Hibernate 是一个基于 Java 的开放源代码的 O/R Mapping (对象关系映射框架),它通过其强大的 O/R 映射功能 JAVA 对象同存于关系数据库中的数据进行映射,并对 JDBC 进行了轻量级的对象封装,可以使JAVA程序员方便地使用对象编程思维来操纵数据库,它不仅提供 ORM 映射服务,还提供数据查询和数据缓存的方法,可以提高查询和处理数据的效率.它是一种提供面向对象的数据库服务中间件.
3.基于 Struts 和Hibernate 的考勤管理系统的设计
随着教育部对在校大学生出勤的相关规定出台,各大专院校加大了对学生考勤的管理力度,但大部份都采用手工处理的方法,工作量大且效率低.本系统能够实现网上对学生考勤信息进行添加、删除、修改、查询和统计功能,管理人员能及时了解学生出勤情况和某课班级某课程的出勤情况.在开发的过程中,使用 PowerDesigner 作为 CASE 工具,采用对 Hibernate 和Struts 提供良好支持的 Myeclipse 6.0 作为系统的开发环境,数据库采用 MYSQL5.0,WEB 服务器采用 jakarta Tomcm6.0 并安装了 JDK6.0.
3.1数据库层的设计
Power Designer 是Sybase 公司的 CASE 工具集,使用它可以方便地对管理信息系统进行分析设计.DataArchitect 模块是Power designer 的核心工具,它采用二级数据建模方式,即概念级和物理级.在概念级,概念数据模型 (CDM) 代表业务信息需求,不考虑在数据库上的物理实现,通过它可以绘制系统的实体联系图(E.R图),即系统的静态特征;在物理级,物理数据模型 (PDM) 指定了物理实现的目标RDBMS的特征等细节.它可以生成数据库脚本,通过选择 ODBC 方式则可以直接连接到数据库,从而直接产生数据库表以及其他数据库对象.它与其它设计软件相配合使用可以缩短开发时间和使系统设计更优化.
在本系统的设计过程中,我们利用 Power Designer 来完成系统数据库概念设计和 MYSQL 数据库表的工作.首先,在PowerDesigner 中设计系统的概念层次的数据模型,通过它的CDM 功能创建实体关系图来描述系统的数据组织结构.通过它的检查模型功能,校验概念数据模型中实体、实体属性、实体标识和实体间关系等是否存在问题.接着,选择 MYSQL 作为系统的目标数据库,生成在MYSQL 上实现的数据库的物理数据模型 (PDM) :最后,通过产生数据库功能,并选择 ODBC 方式连接到指定的数据库,从而直接产生MYSQL 上的数据库表以及其他数据库对象.
3.2 持久化层的设计
数据持久层基于 Hibernate 架构,采用了 DAO 设计模式和抽象工厂设计模式.下面以学生类 (Student) 为例进行说明.首先,把学生信息封装为 VO(Value Object) .VO 是一组值对象,只包含了一些属性和 getter/setter 方法的 POJO(Plan Old Java Bean) .然后,采用 DAO 设计模式和抽象工厂设计模式,完成 DAO 工厂和 Hibernate 数据库操作的具体实现.最后,利用 Hibernate 的配置文件完成从应用程序到数据库的映射.
在Myeclipse 开发环境中,首先配置数据库服务器的连接,然后利用 Myeclipse 的Hibernate 的逆向工程,可以自动完成持久化层的设计任务.例如对学生表 (student) 进行逆向工程, 将会自动生成Student.iava、AbstractStudent.iava、StudentDAO.iava、Student.hbm.xml等文件.其中,Abstract Student.iava 就是一个封装了 Student 信息的VO.Student DAO.java采用DAO模式封闭了数据库操作.
在hibemate.cfg.xml 配置文件中,定义了符合 SQLServer 规范的 dialect 方言,连接池访问数据库的 URL 资源定位地址以及数据库名称kq, 数据库连接驱动程序,Hibernate管理事务、是否显示SQL语句.在mapping映射文件配置部分,定义了教师表 (Teacher)、学生表 (Student1、考勤表(Attendance) 等对应的映射文件等.在该层的设计中,VO 的信息封装体现了面向对象设计编程思想; DAO 的设计模式和抽象工厂模式减弱了上层调用和具体实现之间的耦合;Hibemate 配置实现了数据库高移植性,只需要改变 Hibemate 配置文件,不用修改程序设计就可以完成不同数据库之间的更换.
3.3 业务逻辑层设计
业务逻辑层包含了供客户端程序调用的业务逻辑规则,以帮助客户端完成业务操作.该层采用业务代理、DAO和抽象工厂设计模式使用业务代理、DAO 和抽象工厂设计模式,可以使业务逻辑更加灵活,如果具体业务发生变化,在表示层和数据持久化层改变很小就可以完成改变,这种设计能够增强系统的可维护性和灵活性.
3.4 表示层设计
‘捌’ 考勤管理系统的这个日常考勤模块 数据库表怎么设计呢,是一张表,还是两张表功能如下
用三张表来实现
第一张表记录人员信息,包括工号、姓名、性别、适应考勤规则代码
第二张表记录人员上班明细记录,包括工号、上班时间、下班时间
第三张表记录考勤规则,报表考勤规则代码、另外的字段就是你上面的这些规则
做考勤处理的时候把这三种关联起来