一个加工流程的数据库设计,遇到死结,数据库大神在哪里?

TrueYi 2015-11-03 11:29:24


正常的加工,一个道加工需要开一个加工单后开始进行加工,一个加工单可以包含N个产品.

明细单跟加工产品是以[产品Guid]关联(一个加工产品都会有一个唯一号,在流程中是不变的)

这样的设计存在一个致命的问题:如果出现不合格的话则存在一个问题,不合格出现返回重新加工时

这样就出现与之前的产品重复,比如:产品Guid为:A001的,之前已加工过一次,如果出现不合格再次加工

则会出现打开之前这个产品的加工单时出现两个相同的A001的产品.同时如果再加一个这个产品加工单时,

也会出现两个同样的A001产品.

这种情况数据库该如何设计?

以下附上原来数据库设计和流程图

流程图


数据库设计
...全文
152 1 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
TrueYi 2015-11-04
谢谢以上几位朋友帮我提供了很好的方案 针对这种流程,如果出现删除单的话一般怎样处理, 开加工单时: 1.更新了商品的加工状态, 2.同时做出库(即库存减少), 3.记录一些其他的日志等 4.添加此加工的费用等财务信息 5.其他.... 如果开加工单后记录的信息很多,一旦单据删除的话需要怎样处理,比如开错单了,需要删除. 回滚起来会是头痛的事情,特别是有些已产生财务信息,可能已不能回滚了.
回复
湖中仙人 2015-11-04
我建议在现有的基础上加2个字段,一个是 【是否返工】,另一个是二楼的【返工次数】;楼主可以自己试下,看效果如何
回复
Tiger_Zhao 2015-11-04
取消(不是删除)单据是一个专门的业务,你需要把上面的54321逐个判断,做对应的取消操作:有的是直接更新、有的必须生成对冲的记录。
具体问业务相关人员。
回复
Tiger_Zhao 2015-11-03
[加工产品表]加个[返工次数]字段,默认0,每返工一次就加1。
[加工明细单]中也加上[返工次数]字段,只有和[加工产品表]中一致的才是最新的[加工明细单]。
回复
spiritofdragon 2015-11-03
其实你的工单表可以理解为,这批货的批次信息和物品列表信息。(上下级两张表) 而你的三个加工单我觉得可以合成一个加工计划明细表(需要多几个字段:加工阶段、产品分类。不同的产品,A类型可能有3步,B类产品可能加工4步,这是为了更好扩展,当然,你这样写死3步,3对表也不是不行。)。 另外,还需要有一个加工执行明细表。因为计划表的意思是介绍某个工单号下作的是哪个产品的哪个步骤。而执行表记录的才是真正执行了的记录,比如返工3此,就有3条记录。 为什么有一个计划和一个执行呢?(完全没返工时,两张明细数据基本一致)。因为这两种明细产生的时间点不一样。在一张表上重复修改的话,那么需要加一堆字段,1对N的对应关系其实也不完全一样。非要合成一个表的话,那么,必须是甲方告诉你,不需要记录返工每次过程的记录。这样合成一张表,多加些字段更便捷。
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-11-03 11:29
社区公告
暂无公告