我正在努力设计一个好的预订系统
在场景中,每个房间都有很多room_skus,
每个room_sku记录代表一个实体房间
因为我们可以将许多真实房间属于同一房型。
但是,我不知道如何实现可用性。
我能想到的是添加一个新型号RoomAvailablity。
如果用户从2016-04-11到2016-04-13预订单个房间(room_number:413)
我将在表RoomAvailablity
然后,当另一位用户尝试从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
belong_to: Room
HAS_MANY: RoomAvailablity
id: integer
name:string
belong_to: RoomSku
occupied_date: date
room_sku_id: integer