2014-01-15 24 views
0

考虑具有多个房间类型(例如单人,双人,双人,家庭)和多个房间的酒店。每个房间可以是多种房型的组合(例如,一个特定房间可以是双人房/双床房)。逻辑实现:当资源可以属于多种类型时,按资源类型确定可用性

我面临的问题是如何根据已预订的房间来确定房间的可用性。考虑一个酒店,拥有2间客房:

  • 单人/双人
  • 双人/家庭

我们有一个基本的可用性:

  • 单:1
  • 双:2
  • 家庭:1

(是的,好像有四个房间,但只要可用性> 1,它可以分配,这就是我的工作,现在的前提下)

这样,我可以出售任何房间组合,并且只有当房间可用性柜台打到零时才会影响其他房间。例如。我可以出售一间双人房,但仍然可以选择单人房或家庭房。只有当另一个房间出售时,一切都会关闭。

到目前为止,一切都很好。

除了当我想出多个S/D房间(例如两个或更多)并单独销售它们(例如单个,然后双倍)时,计数器不会达到0(所以我不能使用它作为关闭其他房间的触发器),但我已经售出了酒店拥有的实际房间的最大数量。

很明显,我的方法中存在一些问题,我如何确定可用的方法,如果此问题已经解决,我将非常感谢任何指针(现在为伪代码,我将转换为MySQL/PHP一旦我有了它的头)。

感谢

+0

你是说你只是递减柜台对应客户的要求?当你将一个S/D房间卖给一个要求D房间的顾客时,你需要减少S和D的柜台。 – svk

+0

现在是,是的。我意识到这是唯一的出路。我几乎可以使用分组函数工作,但是在那里停留在...... – JamShady

回答

0

我设法通过SQL最终解决这个问题。

我的预订表包含room_type_id和room_id。根据是否分配房间,我可以直接使用room_type_id加入数据透视表,然后加入room_types表或room_types表。然后,我只需SUM()1为每个元组感谢返回正确的数量,当你最后由room_type.id分组。

相关问题