如何实现OA系统的自定议审批流程的数据库设计

如何实现OA系统的自定议审批流程的数据库设计,第1张

我举一个例子:有的OA系统是要公司客户自己有服务器,然后装到客户的服务器上。可是客户嫌麻烦,所以我想将OA系统(PHP+Mysql)放在自己的服务器上,让公司客户及其员工来注册使用。那么问题来了,原来在客户自己的服务器上数据库也就十几张表,但都放到我的服务器上,每注册一个公司就得增加十几张表,那如果有一万家公司注册数据库不得有几十万张表?跟楼主一样的问题,有一些老牌厂商早就给出来完美答案了,比如华为、天翎都有过类似的问题,这些企业提出的解决方案就很不错,就针对上面的问题,最简单的办法是给每张表加个实例ID,一个公司对应一个实例ID,然后在你的MVC架构中跟DB最近的这一层加个拦截器,每个SQL查询都自动带上实例ID,这样不用对代码做很大改动。后期再根据需要优化,哪些公司合用一张表,哪些单独占用一张表甚至一个数据库,总之具体问题具体对待,需要在运营的过程中根据用户量和业务情况来分析采取对策。

1、用户表

用户ID

用户角色(1:业务员,2:经理,3:总经理,4:总裁。。。)

用户姓名

2、客户表

客户ID

客户名称

3、业务员客户表

用户ID(其实就是用户表里的用户角色为业务员的用户)

客户ID

4、业务员移交客户申请表

申请人用户ID

申请移交的客户ID

审批状态(0:审批中,1:已审批。。。。)

移交后用户ID

5、请假表

用户ID

请假开始时间

请假结束时间

请假类别(1:事假、2:病假、3:婚假。。。。。)

审批状态(0:审批中,1:已审批。。。。)

6、周报表

用户ID

周报月份

审批状态(0:临时保存,1:已提交,2:经理已审批,3:总经理已审批。。。。)

其实具体控制,你要在程序里进行流程控制,并没有你说的那种自动控制,不过这样的表结构设计是可以满足你后期不用再动数据库,只用修改业务流程即可


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9816344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存