-1

我尝试在图表中的 sql server 管理中完成的数据库设计有问题。

我有一个进程表和一个活动表。

一个流程可以调用多个活动,但是一个活动一次只能由一个流程调用(一对多关系)。然而,在我的第二种情况下,一个活动也可以一次调用一个进程,因此一个进程只能由一个活动调用。(一对一关系)

围绕该主体设计这些表格并跟踪谁打电话给谁的最佳方式是什么?

提前致谢。

4

2 回答 2

0

回答

追踪谁打电话给谁

在我看来,您需要第三张表来记录调用,包括调用的活动/进程的 ID、进行调用的活动/进程的 ID、开始时间、完成时间等。

另外,强制执行

一个活动一次只能被一个进程调用

一个活动也可以一次调用一个进程

可以通过向活动表中添加字段来完成,称为call_by_processID 和calling_processID,它们需要在调用开始时更新并在调用结束时清空。

或者,将该功能保留在日志表中,并且仅在相应的先前调用完成时才允许该活动/流程调用。稍微复杂的逻辑,但更好的规范化。

于 2013-02-07T14:47:26.647 回答
0

只需将 activityID 添加到流程,将 ProcessID 添加到活动,这样您就拥有了您所描述的 2 个关系 1 - M

也许称他们为 CalledByProcessID (activity) 和 CalledByActivityID (process

于 2013-02-07T14:36:31.633 回答