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

Logic 逻辑实现:当一个资源可以属于多种类型时,按资源类型确定可用性,logic,pseudocode,business-logic,Logic,Pseudocode,Business Logic,考虑一家拥有多个房间类型(例如单人房、双人房、双人房、家庭房)和多个房间的酒店。每个房间可以是多种房间类型的组合(例如,一个特定房间可以是双人房/双人房) 我面临的问题是如何根据已经预订的房间来确定房间的可用性。考虑一个有2个房间的酒店: 单人/双人 双人房/家庭 我们基本上可以提供: 单人:1 双人:2 家庭:1 (是的,似乎有四个房间,但只要可用性>1,就可以分配,这是我现在正在处理的前提) 通过这种方式,我可以出售任何组合的房间,只有当房间可用性计数器达到零时,它才会影响其他房间。

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

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

  • 单人/双人
  • 双人房/家庭
我们基本上可以提供:

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

通过这种方式,我可以出售任何组合的房间,只有当房间可用性计数器达到零时,它才会影响其他房间。例如,我可以卖掉一间双人房,但仍然可以选择单人房或家庭房。只有当另一个房间售出时,一切才会关闭

到目前为止,一切顺利

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

很明显,我在确定什么是可用的方法上存在一些错误,如果这个问题以前已经解决过,我会感谢任何指点(作为现在的伪代码,一旦我了解了它,我将转换为MySQL/PHP)


谢谢

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


我的预订表包含房间类型id和房间id。根据是否分配了房间,我要么加入透视表,然后加入房间类型表,要么直接使用房间类型id加入房间类型表。然后我只需求和()每个元组对应1个元组,谢天谢地,当您最后按房间类型id分组时,每个元组返回正确的数量。

您是说您只是在减少与客户要求相对应的计数器?当你把一个S/D房间卖给一个要求D房间的客户时,你需要减少S和D的计数器。现在我是,是的。我意识到这是唯一的出路。我几乎让SQL使用分组函数工作,但仍然停留在。。。