我遇到数据库设计问题我试图在图表中的sql server管理中完成。
我有一个进程表和一个活动表。
进程可以调用多个活动,但一个活动一次只能由一个进程调用(一对多关系)。 但是在我的第二个场景中,一个活动也可以一次调用一个进程,因此一个进程只能由一个活动调用。 (一对一的关系)
围绕这个校长设计这些表的最佳方法是什么,但也跟踪谁叫谁?
提前致谢。
答案 0 :(得分:0)
只需将activityID添加到process,并将ProcessID添加到activity,这样就可以获得您正在描述的2个关系1-M
也许叫它们像CalledByProcessID(活动)和CalledByActivityID(进程
答案 1 :(得分:0)
回答
追踪谁叫谁
听起来像你需要第三个表来记录呼叫,包括呼叫的活动/进程的ID,进行呼叫的活动/进程的ID,开始时间,完成时间等。
另外,执行
活动只能由一个进程一次调用
和
活动也可以一次调用一个
的流程
可以通过向活动表添加字段来完成,call_by_processID和calling_processID,需要在呼叫开始时更新,并在呼叫结束时清空。
或者,将该功能保留在日志表中,并且仅在相应的先前调用完成时允许该活动/进程调用。稍微复杂的逻辑但更好的规范化。