[简单工作流系统的自己搭建]数据库设计-员工打卡、考勤、工资等

drop database if exists hrSystem;

create database hrSystem;

use hrSystem;

create table type_table
(
 type_id int auto_increment,
 type_name varchar(50) not null,
 amerce_amount double not null,
 primary key(type_id)
);

create table emp_table
(
 emp_id int auto_increment,
 emp_type int,
 emp_name varchar(50) not null,
 emp_pass varchar(50) not null,
 emp_salary double not null,
 mgr_id int,
 dept_name varchar(50),
 primary key(emp_id),
 unique key(emp_name),
 foreign key(mgr_id) references emp_table(emp_id)
);

create table attend_table
(
 attend_id int auto_increment,
 duty_day varchar(50) not null,
 punch_time datetime,
 is_come boolean not null,
 type_id int not null,
 emp_id int not null,
 primary key(attend_id),
 foreign key(type_id) references type_table(type_id),
 foreign key(emp_id) references emp_table(emp_id)
);

create table app_table
(
 app_id int auto_increment,
 attend_id int not null,
 app_reason varchar(255),
 app_result boolean,
 type_id int not null,
 primary key(app_id),
 foreign key(type_id) references type_table(type_id),
 foreign key(attend_id) references attend_table(attend_id)
);

create table  pay_table
(
 pay_id int auto_increment,
 pay_month varchar(50) not null,
 pay_amount double not null,
 emp_id int not null,
 primary key(pay_id),
 foreign key(emp_id) references emp_table(emp_id)
);

create table  check_table
(
 check_id int auto_increment,
 app_id int not null,
 check_result boolean not null,
 check_reason varchar(255),
 mgr_id int not null,
 primary key(check_id),
 foreign key(app_id) references app_table(app_id),
 foreign key(mgr_id) references emp_table(emp_id)
);

insert into type_table ( type_name , amerce_amount)
	values ( '正常', 0);
insert into type_table ( type_name , amerce_amount)
	values ( '事假', -20);
insert into type_table ( type_name , amerce_amount)
	values ( '病假', -10);
insert into type_table ( type_name , amerce_amount)
	values ( '迟到', -10);
insert into type_table ( type_name , amerce_amount)
	values ( '早退', -10);
insert into type_table ( type_name , amerce_amount)
	values ( '旷工', -30);
insert into type_table ( type_name , amerce_amount)
	values ( '出差', 10);

# 插入经理
insert into emp_table (emp_type , emp_name , emp_pass , emp_salary , mgr_id , dept_name)
	values (2, 'oracle', 'oracle' , 5000 , null , 'DB部');
insert into emp_table (emp_type , emp_name , emp_pass , emp_salary , mgr_id , dept_name)
	values (2, 'weblogic', 'weblogic' , 6000 , null , 'Server部');
# 员工
insert into emp_table (emp_type , emp_name , emp_pass , emp_salary , mgr_id)
	values (1 , 'mysql', 'mysql' , 3000 , 1);
insert into emp_table (emp_type , emp_name , emp_pass , emp_salary , mgr_id)
	values (1 , 'hsql', 'hsql' , 3200 , 1);
insert into emp_table (emp_type , emp_name , emp_pass , emp_salary , mgr_id)
	values (1 , 'tomcat', 'tomcat' , 2800 , 2);
insert into emp_table (emp_type , emp_name , emp_pass , emp_salary , mgr_id)
	values (1 , 'jetty', 'jetty' , 2560 , 2);
时间: 2024-08-30 05:56:08

[简单工作流系统的自己搭建]数据库设计-员工打卡、考勤、工资等的相关文章

.net自己设计简单工作流问题

问题描述 自己设计了一个简单的工作流,基本上可以用,但现在又这样一个问题:1.提交的数据如何与工作流绑定?如果是操作了一张表,比如发起一个请假单,然后各个部门流转审批,是可以绑定在流程实例中的,但是现在因为每个部门可能是操作各自的表的,并且是多张的,联合关系怎么在流程中指明?2.现在想了2种方法,不知道对不对:1).在数据库中建立视图,工作流在任务实例中保存视图名,相关联的字段等,2)流程任务实例中只保存相关联的字段和值,具体的业务,包括操作哪些表,那些表的关系,都在业务代码中实现,流程只提供需

公交车路线查询系统后台数据库设计——查询算法

1. 公交车路线信息在数据库中的存储方式 显然,如果在数据库中简单的使用表bus_route(路线名,路线经过的站点,费用)来保存公交车路线的线 路信息,则很难使用查询语句实现乘车线路查询,因此,应该对线路的信息进行处理后再保存到数据库中 ,笔者使用的方法是用站点-路线关系表stop_route(站点,路线名,站点在路线中的位置)来存储公交车路 线,例如,如果有以下3条路线 R1:S1->S2->S3->S4->S5 R2:S6->S7->S2->S8 R3:S8

浅谈简单工作流设计——责任链模式配合策略与命令模式的实现

本文以项目中的一个工作流模块,演示责任链模式.策略模式.命令模式的组合实现! 流程简介 最近在做的一个项目,涉及到的是一个流程性质的需求.关于工程机械行业的服务流程:服务任务流程和备件发运流程. 项目之初,需求不是很清晰,算是演化模型吧.先出一个简单版本,然后根据用户的使用情况,再进一步探测新需求.所以也就是说这两个流程中的每一步暂时都不是固定的,而应该是可配置.可增减的. 目前暂定的两个流程示意图如下: 以上为两个流程的大致过程,当然实际过程中,可能还要走其他的流程. 但是,仔细分析,你会看到

中小型商城系统中的分类/产品属性/扩展属性的数据库设计

声明:之所以定位在"中小型"商城系统,而非"大型"(指淘宝.拍拍这类巨无霸),理由很简单----我一直都呆在(创业型的)小公司,没见过这些大家伙是怎么设计的:)   正文: 之前发表过一篇"商城系统中[商品扩展属性]的表单生成及客户端验证",部分童鞋对于后台数据库的设计比较感兴趣,于是今天把这部分也补上.   一.产品分类设计越来越多的商城系统都热衷于选择"无限级分类"的设计,我也不例外,因为它方便扩展.这部分就不详细展开了,

复杂系统中的用户权限数据库设计解决方案_数据库其它

B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个"非法用户"很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的"非法用户"将会将他们彻底的"拒之门外&

公交车路线查询系统后台数据库设计——关联地名和站点

在<公交车路线查询系统后台数据库设计--查询算法>一文中,已经实现了查询站点到站点的路线 查询算法,但是,现实中用户不一定使用站点进行查询,而是使用地名.因此,公交车查询系统数据库必 需记录地名与站点的对应关系,在查询时将地名映射为站点.根据实际情况,某一地点附近通常有几个站 点,因此,地名与站点之间是多对多的关系.显然,只需创建一个地名站点关系表stop_spot(Stop,Spot) 用于储存这个关系即可.数据库关系图如下: 注: Route:路线表 Stop:站点表 Spot:地名表 s

云端海量任务调度系统数据库设计 - 阿里云RDS PostgreSQL案例

标签 PostgreSQL , 任务调度系统 , 数据库设计 , schemaless 背景 任务调度系统中的任务状态管理,通常会用到数据库来存储任务调度的过程状态,控制任务的锁等. <advisory lock 实现高并发非堵塞式 业务锁> 如果是小量任务,是挺好实现的,但是每小时处理几十亿或者几亿的任务,如何设计这样的任务状态管理数据库呢? 挑战 对于一个面向多个用户的任务调度平台(例如云端的任务调度平台,将面向所有租户使用). 较大的挑战是任务数据的写入(海量),另一个是任务状态的更新(

新闻-教务网站信息发布系统的数据库设计

问题描述 教务网站信息发布系统的数据库设计 教务网站信息发布系统需求分析 一.新闻发布 普通富文本编辑器(百度UEditor等).格式字符经过转义以后储存在数据库中. 允许上传图片.图片采用文件格式储存,不用数据库储存. 允许上传附件(一个),限制格式. 允许自定义排序,采用排序号. 允许设置所属专题. 允许设置标题链接:设置后,点击不进入内容页面,直接进入设置的链接. 置顶方式:采用排序号. 二.栏目管理 只有超级管理员具有栏目管理权限. 新闻最多分为三级栏目.(或者以设置父栏目的形式实现多级

数据库建模-业务系统系统权限数据库设计问题

问题描述 业务系统系统权限数据库设计问题 本人菜鸟,最近公司正在准备一个新项目,在权限部分的数据库设计上出现了问题. 之前框架的权限部分是基于角色的权限管理,角色与模块和操作多对多关联,关联信息存在中间表里,但是这样做会使中间表数据量非常大,每次登录都去关联各个表查询. 现在还有一个新的方法,就是取消掉模块和操作表,取而代之的是把各个角色的模块和操作权限直接用一条JSON保存到角色表的字段里,这样每次登录只查询角色表把权限JSON拿到后台处理就行了,查询速度是快了,但是如果模块和操作变动的时候就