我正在处理room booking
申请。我正在使用rails 5
和postgres
。模型就是这样。
Hotel
has_many
room_types
RoomTypes
表格看起来像这样
RoomTypes
id: 1
name: "a specific room"
no_of_rooms_of_this_type: 5
酒店老板可以标记一天不可用。因此,我将每个不可用日期保存为单个记录。 选项1
我可以想到为每个不可用的日期创建一个单独的表。这是最好的方法吗?如果是这样的情况我就像这样构建房间
UnAvailabiltyTable
id: 1
room_id: 1
unavailable_day: Date
由于一个房间有许多不同类型的房间:no_of_rooms_of_this_type
,每个房间都有自己的可用性,我将最终创建具有相同room_id的多个记录。那可以吗?
选项2(不确定这是多么有效)
将不可用的值存储为每个房间的jsonb列
有人能否对这个话题有所了解?
答案 0 :(得分:0)
我看不出你的模型非常清楚,但我认为它应该是这样的:
Hotel has_many rooms
Room has_and_belongs_to_many bookings
Booking has_and_belongs_to_many rooms
room_type
只是Room
属性。不过,这可能会因您的需求而有所不同。
另外start_date
和end_date
用于预订。您可以为房间和日期添加验证。
通过这种方式,您可以加入type ='whatever'的房间和预订,还可以为房间创建新的预订。我认为不需要更复杂。