数据库表设计问题

时间:2010-02-20 10:04:38

标签: mysql sql-server database

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)?

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

=================================== EDITED =========== ===========================

实际上,PROCESSACTIVITY是参与BPM(Businees Process Management)的那个

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

那些不知道BPM的人,我通过PROCESSACTIVITY向您解释我的意思。

任何企业都有各种PROCESS es(如CustomerOrderPlaced,CustomerOrderCancelled等),而ACTIVIT就像流程的一部分,需要执行才能完成流程。

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

或者就Java而言,ACTIVITY扩展了PROCESS

2 个答案:

答案 0 :(得分:1)

只要您说“ACTIVITY就像某个流程的部分”,“ACTIVITY扩展PROCESS”就不再是有效的声明。这不是一种关系。这是一种关系。

在ER术语中,Process和Activity之间存在一对多的关系。如果一个Activity属于多个进程,则可能是多对多关系。

例如,CustomerPlacesOrder是一个Process。活动是:

  • 客户填写购物车;
  • 客户退房;
  • 客户输入交货和结算信息,必要时注册;
  • 工人收到订单;
  • 如果物品有库存,工人会选择合适的包装容器并填充;
  • 工人每天都会发送货物。

或者你想得到的复杂程度。继承这不是。

答案 1 :(得分:0)

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

  

ProcessTable

     

ID (主键)
  的 ProcessName
  的 ProcessCode   ...

     

ActivityTable

     

ID (主键)
  的 ActivityName
  的 ActivityCode
  的 ActivityDesc
   ProcessID (ProcessTable的外键)...