结合和优化数据库中的预留

时间:2015-04-21 14:06:19

标签: php sql database postgresql

如果获得包含资产预订的预订表。预约可以存在一段时间,可能跨越多天。

我希望将这些预订合并一段时间以获得:
1 - 适应预订所需资产数量的概述:n;
2 - 结果表,其中包含行r,其中r< = n

这听起来很奇怪,但让我通过一个例子来解释。 让我们考虑这三个保留(为了演示而简化):

res1    2015-04-20 14:00:00    2015-04-21 11:00:00
res2    2015-04-21 13:00:00    2015-04-21 15:00:00
res3    2015-04-21 11:00:00    2015-04-21 14:00:00

如果我们将此显示在 2015-04-21 9:00 2015-04-21 15:00 的图表中。所以预订1被修剪,结果我们得到了这个,X表示预订。

           9    10   11   12   13   14
res1       X    X    -    -    -    -
res2       -    -    -    -    X    X
res3       -    -    X    X    X    -

如果我们作为人类查看此表,我们会将预约1和3组合在一行(或资产)上。第二行只包含预留2(并且是资产编号2)。

这段时间n = 2

我想要生成的结果表如下,添加一个包含标识符的列。

res1    2015-04-20 14:00:00    2015-04-21 11:00:00   1
res2    2015-04-21 13:00:00    2015-04-21 15:00:00   2
res3    2015-04-21 11:00:00    2015-04-21 14:00:00   1

为什么我想要这两个结果?好的第一个结果(n)我可以看到是否可以在一段时间内提供新的预订,从而给出在此期间可用的资产数量。其次,使用生成的表格,您可以构建一个包含组合预留的机架,从而优化资产的使用。

优选地,两个结果将由SQL查询(我可以存储在存储过程中)产生。但是当然,一些逻辑也可以在PHP环境中。

0 个答案:

没有答案