不知道在哪里放这个,但它只是一个普遍的问题,因为我被卡住了一些帮助。我的任务是设计一个预定数据库,对于一个露营地,其中一个要求是应该可以标记其中一个24小时不可用的球场,我能想到这样做的唯一方法就是数据类型,并且当预订完成时,sql将检查该位是否已设置,如果是,那么该音调不可用。从你设置的那一天开始就没有标记它是好的,但是我想知道是否有办法让你可以转发日期,以便它在某个日期/日期可用,然后预订可以仍然是在那个球场上进行的,但是在期望的日期还没有。任何想法或帮助将不胜感激。
答案 0 :(得分:1)
在pitches表中定义一个布尔列确实不合适:
如果我们想要在将来定义不可用期
如果我们想知道音调何时不可用
并且不要忘记您必须在24小时后更改布尔值。
如果您不需要管理将来的不可用期或跟踪旧期,您可以定义一个可以为空的日期列,其中包含下一个可用日期。因此,当音高开始不可用时,它将需要当前日期+ 24小时。因此可用的音高具有NULL日期或日期<到目前的日期。
否则,我认为您应该定义一个包含音高ID,开始日期和不可用结束日期的表格。
答案 1 :(得分:0)
这可能是您想要在应用程序层而不是数据库层中处理的内容。
在您的数据库设计中,您将拥有一个site
表和一个booking
表。 booking
表将键入site
并具有开始和结束日期时间。当您为网站创建新的预订时,请检查它是否不属于任何其他预订网站的范围。