繁体   English   中英

数据库表设计问题

[英]Database Table design problem

Scenario:存在PROCESS的层次结构。 喜欢

PR-2, PR-3 are children of Pr-1

PR-4, PR-5 are children of PR-2

现在, leaf processes (in our case PR-3, PR-4 and PR-5可以按照ACTIVITY系列进行描述

现在, ACTIVITY只是PROCESS的子级,但具有一些额外的属性,因此

我应该做两个比较。 数据库中的表(一个用于ACTIVITY ,一个用于PROCESS )?

要么

我应该在PROCESS表中添加一些字段(用于ACTIVITIY额外属性),并将ACTIVITY存储在PROCESS表中。

==================================已编辑=============== ========================

实际上,这里的PROCESSACTIVITY是BPM(业务流程管理)所涉及的PROCESSACTIVITY

那些了解BPM的人可以弄清楚什么是ACTIVITYPROCESS

那些不知道BPM ,我向您解释PROCESSACTIVITY含义。

任何企业都具有各种PROCESS (例如CustomerOrderPlaced,CustomerOrderCancelled等),而ACTIVIT就像流程的一部分,将执行该流程以完成流程。

因此, ACTIVITYPROCESS的子级,具有一些额外的属性。

或就Java而言,ACTIVITY扩展了PROCESS

只要你说“ ACTIVITY就像是过程的一部分 ”,“ ACTIVITY扩展PROCESS ”不再是一个有效的语句。 这不是一种关系。 这是一种有关系的关系。

用ER术语来说,流程和活动之间存在一对多的关系。 如果一个活动属于多个流程,则可能是多对多关系。

例如,CustomerPlacesOrder是一个流程。 这些活动是:

  • 客户填充购物车;
  • 客户结帐;
  • 客户输入交货和账单信息,必要时进行注册;
  • 工人接到命令;
  • 如果物品有库存,则工人选择合适的包装容器并填充;
  • 工人每天交货时发送。

或无论您想要变得多么复杂。 继承不是。

您应该有多个表。 表格如下所示:

工艺表

ID (主密钥)
流程名称
ProcessCode ...

活动表

ID (主密钥)
活动名称
活动代码
活动描述
ProcessID (ProcessTable的外键)...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM