[关闭]
@jiyiren 2016-03-24T12:55:10.000000Z 字数 9105 阅读 994

员工激励管理系统DB

@(吉毅、陈旭山)[闫朝伟|徐旺]

数据库设计
* 后台:PHP
* 数据库:MySQL

更新日志:

  • 2016-03-24更新
    usertasks里的taskstate任务状态0表示正在进行,1表示申请审核,2表示审核成功,3表示审核不通过,4表示取消,5表示任务过期。
    当检测到taskstate=0并且过期(当天过期,在一定时期内过期,每天的过期,每月的过期)然后将taskstate=5;用户已经选择了的任务过期表示不让用户再看到正在进行的过期任务,而任务可否选择是由任务的taskdatetype决定的。
    comtasks里的过期将curtimes置为0即可

  • 2016-03-15更新

    1. companyinfos表里修改totalmoney为curmoney表示当前所剩金额,
  • 2016-03-14更新
    1.orders表里新增sendtime,confirmtime分别为发货时间和确认收货时间
    orders里的state:0表示创建订单(提醒发货,时间为createat),1表示已经发货,sendtime为发货时间,2表示已经收货但未付款,confirmtime为确认收货时间,3表示已经收货,已经付款(由系统管理员),付款后updateat为付款时间。

  • 2016-03-13更新

    1. 新增comsupplys表,表示公司所有福利所关联的提供商id信息,当用户获得福利时,在该表的needcount上加1,并将state置为1(可提醒发货)。当管理员点击发货后,将该表里的信息添加到orders表里,将need加到remaing字段上,并清空neecount。remaing将是该公司剩余品的件数,如果用户领取了某件,则在该字段上减1(userwelfares表里记录了对应的discountsid).
    2. 删除orders表中comwelfareid字段,因为多个福利可以对应一个供应商,并且福利id
    3. comwelfares表新增state字段,0表示福利正常,1表示福利已经被替换
  • 2016-03-11更新

    1. 表comwelfares表里加入fromsyswfid字段表示从系统福利里导入的id,加入money价值字段.
  • 2016-03-11更新

    1. 表users,admins里增加state字段,0表示正常,1表示用户被删除。
  • 2016-03-10更新

    1. 表syswelfares新增supplytypeid和supplyid
    2. 表feedbacks新增comid
  • 2016-03-07变更更新

    1. 表usertasks里新增comid公司id,增加finishtime任务结束时间,新增taskname,taskdesc,taskscore,needpic
  • 2016-03-06变更更新

    1. 删除begintkbags直接用类型表作为初始大任务包,删除comtasks表里的companynum字段
    2. comtasks表里增加selected字段默认全为1,在systasks表里增加selected字段,默认全为0,为便于区别已经被公司选入的任务
  • 2016-03-05变更更新

    1. companyinfos表里加入allmoney(历史总金额)字段,isremind(是否被提醒充值0未,1已提醒),remindtime(提醒时间),typename(类型名称)
    2. 2.
  • 2016-03-03变更更新

    1. 员工:
      • 员工注册需要输入性别和年龄--users表里加入sex和age字段
    2. 企业:
      • 企业注册---类型选择其他,则不能初始化任务。
      • 企业审核---需管理员登录,并给出友情提示: 申请企业审核,必须成功介绍1家新企业加入益趣平台,数据库表之前已经给出了数据字段
      • 企业福利---初始化福利不需要输入公司性别比例、年龄结构,这些信息由系统自动完成,导入福利包时两大类福利包内各提供3个福利包让其选择。福利积分不能修改。
      • 企业页面---右上角增加联系客服:显示客服电话。
      • 企业信息---企业信息设定里,加入“已介绍新企业加入”的数量----companyinfos表里加入introcount字段;
    3. 系统:
      • 查询---按照公司名查询到的页面加入已成功介绍几家企业,取消下面的提醒发货按钮;在供应商里也取消提醒发货按钮
      • 福利--生成福利,确定年龄段和性别属性,都单选。
        公司所处年龄阶段的判别公式:
        40岁以下员工比例高于60%: 偏青年;
        40岁以下员工比例处于30%-60%:均衡;
        40岁以下员工比例低于30%:偏中年。

        公司所处性别结构的公式:
        男性员工比例高于60%:偏男性;
        男性员工比例处于30%-60%:均衡;
        男性员工比例低于30%:偏女性。
  • 2016-03-02更新
    companyinfos表中增加了如下字段:
totalstaff(总员工)默认为0 //便于查询(每次新用户要自增1)
totalclick(总点击量)默认为0
manager管理者姓名 //公司注册界面没有密码
email管理者email
phone管理者手机号

一、表结构设计

前言:
* 每张表建议都加入createdat(创建时间)与updatedat(更新时间)字段,时间记录是不可少的,下面的表中默认都没有写,但是实际建表应该加上
* 服务器触发器:
1. 用户日月积分到时间自动清0;
2. 公司任务表里的时间为每天,每月或者时间段的到时间自动清零(将属性totaltime清零,让用户无法看到)

1、users

字段 类型 说明
id int autoincrement
(FK)companyid(公司id) 与companyinfos表关联
companynum(公司代码) 为便于查询,将公司代码也直接记录
username(姓名)
phonenum(手机号)
sex(性别) 1男,2女(单选)
age(年龄)
email(邮箱)
password(密码)
jobinfo(职位描述)
headpicuri(头像) 单个字符串,以用户id作为图片名称如:1.png
level(等级) 像QQ等级一样
idtype(第三方登录类型) 第三方登录类型(1QQ,2微信,3新浪)
idnumber(第三方登录唯一id) 第三方登录唯一id
dayscores(当日积分) 过日要清零,需要定时器
monthscores(当月积分) 过月要清零,需要定时器
totalscores(总积分) 不清零

2、admins

字段 类型 说明
id int autoincrement
(FK)companyid(公司id) 关联companyinfos表
companynum(企业代码)
username(用户名)
phonenum(手机号)
email(邮箱)
password(密码)
headpicuri(头像)
idtype(第三方登录类型) 第三方登录类型(1QQ,2微信,3新浪)
idnumber(第三方登录唯一id) 第三方登录唯一id

3、roots

字段 类型 说明
id int autoincrement
username(用户名)
phonenum(手机号)
email(邮件)
password(密码)
headpicuri(头像)
idtype(第三方登录类型) 第三方登录类型(1QQ,2微信,3新浪)
idnumber(第三方登录唯一id) 第三方登录唯一id

4、companyinfos

字段 类型 说明
id int autoincrement
companynum(企业代码)
companyname(公司名称)
**(FK)**typeid(公司类型) companytypes表id关联
typename(类型名称)
intronum(介绍人企业代码)
address(企业地址)
postcode(邮编)
idfrontpic(身份证正面照)
idbackpic(身份证反面照)
licencepic(营业执照照片)
state(认证状态) 0未申请认证,1等待审核,2已认证
allmoney(历史总金额)
curmoney(总金额) 充钱的剩余金额
totalstaff(总员工) 默认为0
totalclick(总点击量) 默认为0
manager 管理者姓名
email 管理者email
phone 管理者手机号
introcount(已经介绍的企业数)
isremind 是否被提醒充值,0未提醒,1已经提醒
remindtime 提醒的时间

admins(企业管理员)------companyinfos(公司信息):多对1
一个公司可以有多个管理员

5、companytypes

字段 类型 说明
id int autoincrement
typename(类型名称) 如:培训类机构

删除 6、begintkbags

字段 类型 说明
id(id字段) int autoincrement
name(大大任务包名称) 就是companytypes里的类型名,为便于查询直接记录一次
(FK)companytypeid(公司类别id) 关联companytypes表id

7、systaskbags

字段 类型 说明
id(id字段) int autoincrement
bagname(任务包名称)
(FK)begintkbagid(初始化大包id) 关联begintkbags表id

8、systasks

字段 类型 说明
id(id字段) int autoincrement
taskname(任务名)
taskdesc(任务描述)
taskscore(任务分数)
isneedpic(是否需要附件)
taskdatetype(有效期类型) 两种1每天 2每月
tasktarget(任务对象) 默认为0代表全员(默认)
totaltimes(该任务可领取次数) -1为任意次数,1为1次,当减到0则不能被用户选择了
(FK)bagtypes(包类型) 这里直接在该表里写了类型,表名了任务只能设置在特定的包下,因为系统管理员在发布任务的时候都是在任务包里设置的,所以这里可以看做是完全一对一了systaskbags的id

9、comtasks

字段 类型 说明
id(id字段) int autoincrement
**(FK)**companyid(公司id) companyinfos表id关联
删除companynum(公司代码) varchar(10)
taskname(任务名)
taskdesc(任务描述)
taskscore(任务分数)
isneedpic(是否需要附件)
taskdatetype(有效期类型) 三种1当天 2每天 3起始时间到结束时间
startdate(起始时间)
enddate(结束时间)
tasktarget(任务对象) ,0,为全员 ,1,2,3,为指定用户1,2,3;查询是用,id,查询可简便查询
totaltimes(总可领取次数) -1为任意次数,正整数为所表示次数(任务属性,值不变)
currtimes(当前可领次数) -1为任意次数,1为1次,当减到0则不能被用户选择了
**(FK)**fromtaskid(从培训包里导入时,记录systasks里的id) 关联systasks表id,便于实现区别导入和未导入的任务

10、usertasks

字段 类型 说明
id(id字段) int autoincrement
userid(用户id)
**(FK)**comtaskid(公司任务id) 关联comtasks表id
taskstate(任务状态) 0正在进行,1申请审核(员工界面显示待审核),2审核通过,3审核不通过(将任务放入可选任务中,用户必须重新选择该任务重做),4撤销(扣除积分,从用户总积分里减去(日月总都要减掉),然后插入到用户积分表一条扣一分记录。)
remark(备注) 如果是撤销,可能会有备注

11、beginwfbags

字段 类型 说明
id int autoincrement
beginbagname(初始福利包名)

beginwfbags(初始福利包名表)------>welfarebags(福利包表)------->welfares(福利表)
系统管理员点击初始福利包-------显示一系列福利包--------单个福利包下显示一系列福利

(去掉)welfarebags

字段 类型 说明
id int autoincrement
bagname(福利包名)
beginbagid(初始福利包id) 与初始福利包表id关联

只有两个福利包,一个是每月福利包,一个是生涯福利包

12、syswelfares

字段 类型 说明
id int autoincrement
welfarename(福利名)
welfaredesc(福利描述)
needscore(需要积分数)
encourage(激励指数) 里面保存数值,展示用百分比
age(年龄段) 1偏青年,2均衡,3偏中年(单选)
sex(适合性别) 1偏男性,2均衡,3偏女性(单选)
discountid(优惠id) 对应discounts表id
picuris(图片地址) 数组,如:123.png,234.png,345.jpg等
(FK)eginbagid(初始大福利包id) 关联beginwfbags表id
welfaretype(福利类型) 1月度福利,2生涯福利

welfares(福利)------>discounts(优惠)------>supplys(供应商))
供应商只通过优惠展现,优惠只通过福利发放,福利只通过福利包给管理员选择

13、comwelfares

字段 类型 说明
id int autoincrement
companyid(公司id)
welfarename(福利名)
welfaredesc(福利描述)
needscore(需要积分数) 与welfares表主要该字段不同
encourage(激励指数) 里面保存数值,展示用百分比
age(年龄段) ?1青年,2中年,3老年(应该可多选,均用数组展示)
sex(适合性别) 0男女均适合,1男,2女
**(FK)**discountid(优惠id) 对应discounts表id
picuris(图片地址) 数组,如:123.png,234.png,345.jpg等
welfaretype(福利类型) 1月度福利,2生涯福利

14、userwelfares

字段 类型 说明
id int autoincrement
userid(用户id)
**(FK)**comwelfareid(公司福利id) 关联comwelfares表id
discountid(福利所关联的优惠id)
getidentify(领取福利的唯一标识) 通常为二维码展示
state(取得状态) 0未领取,1已领取
welfaretype(福利类型) 1月度福利,2生涯福利

加了福利类型,可以清楚知道用户已经获得的月度福利和生涯福利

这个userwelfares关联了comwelfare表的公司福利id,公司福利又关联了discounts优惠表,所以公司字段和优惠是否为发货字段都可以查询到,但是为了便于查询,可以在userwelfares表里加入companyid公司id,和是否需要发货isneedsend,因为有了companyid可以在员工界面查询已经领取的福利快捷,在通知发货界面可以清楚知道哪些人已经获得了需要发货的福利

15、supplys

字段 类型 说明
id int autoincrement
supplyname(供应商名称)
supplytypeid(供应商类被) int supplytypes表关联外键
name(联系人)
phone(联系电话)
email(联系邮箱)

16、supplytypes

字段 类型 说明
id int autoincrement
typename(类别名称) 如:美食、购物等

17、discounts

字段 类型 说明
id int autoincrement
discountname(优惠名称) 如:手机1部、洗澡票、交通补贴等
**(FK)**supplyid(供应商id) supplys表id关联
type(类型) 1表示需发货,2表示第三方优惠
discountdesc(优惠描述) 长文本
money(关联金额)
picuris(图片地址) 数组,如:12345.png,23456.jpg,34567.jpg表示图片地址uri,可以设定默认保存的位置,只记录图片的名称

18、feedbacks

字段 类型 说明
id int autoincrement
companyname(公司名称)
username(员工名称)
usertype(用户类型) 1公司反馈,2员工反馈
contenttype(内容类型) 1福利期望,2请求建议
conten(内容)

19、notifys

字段 类型 说明
id int autoincrement
(FK)companyid(公司id) 关联companyinfos表的id
title(标题)
content(内容)

20、userscores

字段 类型 说明
id int autoincrement
userid(用户id)
taskid(任务id)
score(积分)
type(类型) 默认为1收入,2撤销
remark(备注) 撤销时,可能会有备注
finishday(完成日期) 格式:20160222,便于查天月总积分

当要查询当天的总积分时,只要以当天的时间戳与finishday匹配就累加起来,再排序;要查询当月的总积分时,只要获取当月时间与finishday转化的月时间戳对比,再排序就可以了。

21、recharges

字段 类型 说明
id int autoincrement
companyid(公司id)
money(充值金额)
passcode(唯一验证口令) 在企业管理员支付宝转账时,留言该字段,系统管理员查询到后,可以根据该口令验证是哪一笔充值。由系统生成
state(充值状态) 1申请充值,2完成充值
time(充值时间) 应精确到时间,也可以放在createat字段上

系统管理员的消费情况是否要显示

22、consums

字段 类型 说明
id int autoincrement
companyid(公司id)
discountid(福利优惠id) 这个就是消费的对象id
money(消费的钱数) 与discount里的对象金额一致,为便于搜索就加了该字段
time(消费时间收货的时间) 格式:20160223 10:40

23、orders

字段 类型 说明
id int autoincrement
**(FK)**companyid(公司id) 关联companyinfos的id
supplyid(供应商id)
comwelfareid(公司福利id)
discountid(优惠id)
count(发货数量)
state(发货状态) 0已下订单而没发货或者(是需求人说的已提醒发货,它这个提醒实际意思是下订单),1商家已发货(订单号由系统管理员填写),2已收货
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注