我们正在看更新(重写)我们的系统存储的信息,当人们可以预订房间等。在白天。现在我们储存的开始时间和日期间提供一个表格,而在另一个我们商店的个别预约时间。

表面上似乎是一个合乎逻辑的想法存储的信息,这种方式,但随着时间的推移,该系统受到沉重的负担,我们开始意识到,这些数据的结构似乎效率低下。(它成为一个密集的操作搜索所有的房间可用的时间并计算时间。如果该房间是提供给定的时间,是时候了,它是提供足够长期容纳所请求的时间)。

我们已经在绕圈子有关如何使该系统更有效率,我们感到必须有一个更好的方式方法这一点。有人建议,关于如何去关于这一点,或有任何地方哪里可以找到有关如何建立这样的事情?

有帮助吗?

解决方案

我发现这本书对任何涉及时间管理/约束的数据库都是鼓舞人心的,必读的:

开发面向时间的数据库应用程序在SQL

由编辑添加预订可通过 Richard Snodgrass 的主页在线获取。它是一个好书。)

其他提示

@Radu094指你一个很好的信息来源,但这将是艰难的,要处理。

在一个可怕的务实的水平,你有没有考虑记录的任命,并可用信息在一个单一的表格,而不是在两个表?每一天,切的时间达到'不可用'(前的办公室打开后,该办公室关闭-如果这样的事情发生),'可能被分配"和"不可用'.这些(两个或)三类预订将被记录在连续的时间间隔(的开始和结束时间为每个时间间隔在一个单一的记录)。

每个房间和每个日期,有必要建立一个设定的'不使用'预订(这取决于你是否去与'不可用的',设置可能是一种'可用'的记录或者,它可能包括的早班和晚班从来不用的记录也是如此)。

然后,你必须作出什么问题你要求.例如:

  • 我可以预订房X天Y之间的T1和T2?
  • 是否有任何房间可在一天Y之间的T1和T2?
  • 在什么时候上天Y房X仍然可供使用?
  • 在什么时候上天Y是一个房间的视听能力和能力为12人?
  • 谁拥有房X预订在早晨的天Y?

这只是一个小个子集的可能性。但是与一些关心和关注细节,查询变得容易管理。验证的约束,在DBMS将变得更加困难。就是确保,如果时间[T1..T2)被预订,则将没有其他人的书[T1+00:01..T2-00:01)或任何其他的重叠期。看看 艾伦的时间间隔代数 在维基百科和其他地方(包括这一个 uci.edu).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top