办公流程中多次提交拟准直到核准这样的表应该怎么设计啊?
如题很多模块都是这样
录入记录->提交(或暂时保存后提交)->拟准.....->核准
中间会有撤回退回等退回到上一个状态
我现在是建了一个记录表(Rec)一个记录明细表(RecDetails),是一对多的关系,一条记录对应多条明细。
明细表(RecDetails)保存了明细编号,记录编号,发送人,接收人,状态(未处理,已提交..已核准等等..).....,
记录表(Rec)保存记录编号,工作名称(提交后显示的标题),访问路径,当前明细号...
而记录编号则存在于需要提交的那条记录所在的表里
比如
Products表:
-------------
ProductNo
ProductName
....
RecNo
...
里面的RecNo字段,是Rec表的主键,按照规则生成,保存时会生成保存在Products表,提交时生成提交记录和一条记录明细保存到Rec表和RecDetails表,一条Products表的记录对应一条Rec表的记录,间接对应多条RecDetails表的记录
程序中所有需要进行这个流程的实体都继承自一个EntityBase类,里面有记录对象(Record)
这样每次读取Products表的记录都要和一个RecDetails_View视图做连接,读取状态封装成一个记录对象(Record),页面上有一个ButtonGroup控件,根据当前用户,用户权限,和记录对象的一些属性控制各个LinkButton的属性
现在这个流程已经实现,但是我心里总觉得不舒服,因为肯定还有更好的解决方案,想问下各位达人们该怎么做?
--------------------编程问答-------------------- 提交、核准,就用一个标记位的不同值来表示就行了。
退回时,如果要记录日志,就写入另外一个表中。 --------------------编程问答--------------------
这个我现在已经实现,就是想问下有没有好一点的处理方法
系统里绝大多数表都会与Rec表有关联,比如Products,Customers....等等。
我一开始是将表名,主键..等存到Rec表中
比如:
记录ID 表名 主键名 主键类型 主键值 路径 ......
------ ----- ------ ------- ----- ......
n Products ProductId Numeric .......
m Customers CustomerNo string .......
......
明细表中保存了所有的历史操作记录...
但是将表名和主键名存到表里面我总觉得不合理,而且这样很难处理两个主键的情况
还有,比如我要取一条Product记录,而同时要带出状态以确定这条记录能不能进行修改删除或是提交、核准等等操作。。。所以就先要Select .... from Rec where 表名='Products' and 主键='ProductId' and 主键值=...这样,然后根据记录ID在RecDetails表里取当前的状态。。。不管保存还是读取、删除都很烦琐
后来改成我在帖子里说的那种。。。还是觉得不太好
不知道有没有人做过这种,表和程序又是怎么设计的呢? --------------------编程问答-------------------- 刚才看了一下,这个版块太多各种各样明的暗的广告帖,没人管了吗?? --------------------编程问答-------------------- 工作流
补充:企业软件 , 企业信息化