我遇到了关于循环引用的问题。我没有找到一个好的设计解决方案。
我们有一个传统的调度系统。
用户
TimeSlot(可用性)
约会
这样我们就有了一个连锁用户 - (1,n) - >可用性 - (1,n) - >约会
现在我想做的是在非常时间段安排约会。 (当用户不应该可以并且想要预约时,用户就会出现。
这样我需要快捷方式可用性。
用户 - >约会
但是如果我添加一个新字段UserFK,我觉得我会创建一个循环引用。
以下是我对数据库设计的观察,基于您的问题。
User_Timeslot
。它可用于检查可用性,如果用户预约,则不应影响。appointment
将成为一个桥接表,它映射用户,时间段和相应的约会。你还可以有一个标志IsUserAdhocAppointment,它将告诉用户是否出现在他的时间段之外(基于User_Timeslot
表)。这个用户的约会是在start_hour到end_hour,属于这个时间段。