我正在寻找解决SQL模式中以下问题的最佳解决方案。
我的旧应用程序中已经存在酒店到房间的排除,我可以在该日期中设置该酒店所有房间的关闭日期和截止日期。这是一条规则。
我的数据库中已经存在以下SQL表列
RuleId,HotelId,RoomTypeId,ValidFrom,ValidTo,IsActive,CreatedOnDate
因此,现在作为一项增强功能,我需要在已经存在的应用程序中添加三个较高级别,可以在其中设置规则,即该级别及其较低级别将无法运行的时间段。
层次结构将像
机场--->度假村---->酒店---->客房
机场是最高优先级,房间处于最低优先级
例 情况1:-如果机场从一个日期关闭到另一个日期,则默认情况下所有较低级别(度假村,酒店,客房)将在同一时期关闭。度假村和酒店也是如此。
情况2:-如果我删除任何最高优先级规则,例如在机场级别,则它应使用其先前的值。
例如-如果酒店在特定日期关闭,则为Rule1,此外,如果用户为机场创建另一个规则,则为Rule2。较低的所有级别都将使用Rule2。 但是将来,如果用户决定删除Rule2,则酒店的Rule1应该再次适用于酒店。
为了在SQL数据库模式中处理此问题,在不影响现有模式的情况下处理上述情况的最佳方法是什么? 有人可以帮忙吗?