逻辑实现:当一个资源可以属于多个类型时,根据资源类型确定可用性



考虑一家拥有多个房间类型(如单人间、双人间、双床间、家庭间)和多个房间的酒店。每个房间可以是多种房间类型的组合(例如,一个特定的房间可以是双人间/双床间)。

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

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

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

  • 单身:1
  • 双人间:2
  • 家庭:1

(是的,似乎有四个房间,但只要可用性>1,就可以分配,这是我现在正在处理的前提)

这样,我可以出售任何组合的房间,只有当房间可用性计数器为零时,它才会影响其他房间。例如,我可以卖掉一间双人间,但仍然可以选择单人间或家庭间。只有当另一个房间售出时,一切才会结束。

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

除非我有多个S/D房间(例如两个或更多)并单独出售(例如一个单人间,然后是双人间),否则柜台不会达到0(所以我不能以此作为关闭其他房间的触发因素),但我已经卖出了酒店最大数量的实体房间。

很明显,在我确定可用内容的方法中存在一些错误,如果这个问题以前已经解决,我将不胜感激(目前作为伪代码,一旦我了解了它,我将转换为MySQL/PHP)。

感谢

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

我的预订表包含一个room_type_id和一个room.id。根据是否分配了房间,我可以先加入透视表,然后加入room_types表,也可以直接使用room_type_id加入room_type表。然后我只为每个元组求和()1,谢天谢地,当你最后按room_type.id分组时,它会返回正确的数量。

最新更新