【发布时间】:2011-02-23 17:50:01
【问题描述】:
这是一个复杂的情况。我有一个预订系统,可以预订房间。
问题是房间的价格不是作为单一值存储的,而是基于时间段的。就像一个房间在 9 月到 12 月之间可以有一个每日房价,从 3 月到 8 月可以有不同的房价,而在其他情况下有一个基本房价。
费率表是这样的:
ROOMID | RATE | PERIOD_START | PERIOD_END
假设 3 月 1 日至 3 月 31 日期间的房间价格为 20 美元/天,4 月 15 日至 5 月 30 日同一房间的价格为 30 美元,但价格是 15 美元的统一价格/天。
如果此房间由一位客户在 3 月 15 日至 5 月 10 日期间预订,则总费用为:
15th March - 31st march charged at 20 Dollars/day = 16x20
1st April - 14th April charged at 15 Dollars/day = 14x15
15th April - 10th May charged at 30 Dollars/day = 25x30
现在我如何在代码中计算这个值,如果有的话,我需要根据费率周期计算天数,否则为它们使用基本费率。它很复杂,但就是这样。我正在使用 php MySQL
【问题讨论】:
-
所以问题是要预订的某些日子可能在不同的价格/日期范围内?那么是在 3 月 31 日之前 3 天,然后在 4 月 1 日之后再过两天?
-
@jonah - 是的,正如你所说的那样
-
@Linus - 该项目是相同的,但它的情况不同,即它涉及根据不同时期的不同费率计算成本,其他问题都没有解决这个问题
标签: php mysql algorithm sql-optimization