我尝试在图表中的 sql server 管理中完成的数据库设计有问题。
我有一个进程表和一个活动表。
一个流程可以调用多个活动,但是一个活动一次只能由一个流程调用(一对多关系)。然而,在我的第二种情况下,一个活动也可以一次调用一个进程,因此一个进程只能由一个活动调用。(一对一关系)
围绕该主体设计这些表格并跟踪谁打电话给谁的最佳方式是什么?
提前致谢。
我尝试在图表中的 sql server 管理中完成的数据库设计有问题。
我有一个进程表和一个活动表。
一个流程可以调用多个活动,但是一个活动一次只能由一个流程调用(一对多关系)。然而,在我的第二种情况下,一个活动也可以一次调用一个进程,因此一个进程只能由一个活动调用。(一对一关系)
围绕该主体设计这些表格并跟踪谁打电话给谁的最佳方式是什么?
提前致谢。
回答
追踪谁打电话给谁
在我看来,您需要第三张表来记录调用,包括调用的活动/进程的 ID、进行调用的活动/进程的 ID、开始时间、完成时间等。
另外,强制执行
一个活动一次只能被一个进程调用
和
一个活动也可以一次调用一个进程
可以通过向活动表中添加字段来完成,称为call_by_processID 和calling_processID,它们需要在调用开始时更新并在调用结束时清空。
或者,将该功能保留在日志表中,并且仅在相应的先前调用完成时才允许该活动/流程调用。稍微复杂的逻辑,但更好的规范化。
只需将 activityID 添加到流程,将 ProcessID 添加到活动,这样您就拥有了您所描述的 2 个关系 1 - M
也许称他们为 CalledByProcessID (activity) 和 CalledByActivityID (process