【问题标题】:How to data-model dynamic open/close times for booking a room如何对预订房间的动态打开/关闭时间进行数据建模
【发布时间】:2015-11-13 08:11:14
【问题描述】:

这是我的第一篇文章。我一直在寻找最好的方法来做到这一点,但没有取得太大的成功,所以我决定在这里发帖。

我有一个数据库模型,将用于在综合大楼中预订房间。这些房间需要有开放和关闭时间,以确定何时可以预订。例如,一个房间可能从上午 8 点到晚上 10 点开放,但另一个房间可能从上午 10 点到下午 5 点开放,等等。

其中一个要求,也是我坚持的部分,是房间的打开/关闭时间需要根据类似于“季节”的时间段进行更改,但这个时间段是由管理员手动设置的不像一个季节。

因此,从 1 月 11 日到 3 月 28 日,特定房间的营业时间可能是上午 10 点到下午 5 点,但从 3 月 29 日到 7 月 17 日,它的营业时间可能是上午 8 点到晚上 7 点。

我猜我需要另一张或两张桌子来存储“时间段”以及这些时间段内房间的打开/关闭时间。

谁能指出我正确的方向或给我一个例子?

谢谢。

【问题讨论】:

    标签: datamodel


    【解决方案1】:

    它高度依赖于您的应用程序的逻辑,但在最简单的情况下,您可以将其保存在以下结构的附加表中:

    room_id INT
    period_from DATE
    period_to DATE
    open_from INT
    open_to INT
    

    您可以使用以下方式选择房间在特定日期的开放时间:

    SELECT open_from, open_to 
    FROM intervals
    WHERE room_id = 4 AND period_from > '2015-08-19' AND period_to < '2015-08-19'
    

    注意当您添加新时间段时,您应该确认时间段不会与给定房间相交。

    【讨论】:

    • 感谢您的建议。它让我走上了我认为的正确道路。我在想这样的事情...gyazo.com/6cc52078e5d11a3dbfe0312048b10dff
    • 是的,你的方法也很好。它允许为所有房间设置一些预定义的时间段。
    • 感谢您的帮助。我会投票,但我是新人,在我得到 15 分之前不允许。
    • 没关系。如果您认为答案解决了您的问题,您可以将其标记为accepted
    猜你喜欢
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 2017-11-01
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多