设计室预订可用性检查功能

时间:2016-04-11 09:42:44

标签: ruby-on-rails database e-commerce

我正在努力设计一个好的预订系统

在场景中,每个房间都有很多room_skus,

每个room_sku记录代表一个实体房间

因为我们可以将许多真实房间属于同一房型。

但是,我不知道如何实现可用性。

我能想到的是添加一个新型号RoomAvailablity。

如果用户从2016-04-11到2016-04-13预订单个房间(room_number:413)

我将在表RoomAvailablity

上创建三条记录
  • {room_sku_id:413,occupied_date:2016-04-11}
  • {room_sku_id:413,occupied_date:2016-04-12}
  • {room_sku_id:413,occupied_date:2016-04-13}

然后,当另一位用户尝试从2016-04-12到2016-04-14预订(room_number:413)时

我会发出count = RoomAvailablity.where(room_number:413, occupied_date >= 2016-04-12 and occupied_date <= 2016-04-14)

之类的查询

如果count > 0,那么在此期间房间不可用。

有什么好的建议可以改善我的想法吗?

HAS_MANY RoomSku

id: integer
name:string
type:string (Double, Single, Triple)
description:string

RoomSku

belong_to: Room
HAS_MANY: RoomAvailablity
id: integer
name:string

RoomAvailablity

belong_to: RoomSku
occupied_date: date
room_sku_id: integer

0 个答案:

没有答案