两张桌子上的两个关系

时间:2013-02-07 14:32:53

标签: sql android-activity process double relation

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

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

进程可以调用多个活动,但一个活动一次只能由一个进程调用(一对多关系)。 但是在我的第二个场景中,一个活动也可以一次调用一个进程,因此一个进程只能由一个活动调用。 (一对一的关系)

围绕这个校长设计这些表的最佳方法是什么,但也跟踪谁叫谁?

提前致谢。

2 个答案:

答案 0 :(得分:0)

只需将activityID添加到process,并将ProcessID添加到activity,这样就可以获得您正在描述的2个关系1-M

也许叫它们像CalledByProcessID(活动)和CalledByActivityID(进程

答案 1 :(得分:0)

回答

  

追踪谁叫谁

听起来像你需要第三个表来记录呼叫,包括呼叫的活动/进程的ID,进行呼叫的活动/进程的ID,开始时间,完成时间等。

另外,执行

  

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

  

活动也可以一次调用一个

的流程

可以通过向活动表添加字段来完成,call_by_processID和calling_processID,需要在呼叫开始时更新,并在呼叫结束时清空。

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