我目前在一个预订网站上工作。我正在使用 PHP Baikal CalDav 服务器(已修改)。当通过 Mozilla Thunderbird 或 iCal 生成时,Baikal 生成的 ical 文件将 VCALENDAR(每个事件)文件作为 mysql 中的介质 blob 存储在单个列中。此外,我在我网站上的预订也存储为 VCALENDAR 文件。
如果我想检查房间是否可用,我必须获取与 room_id 匹配的每个 VCALENDAR 文件并从 VCALENDAR 中提取信息。我不知道这个操作是否太昂贵。我尝试从 VCALENDARS 中“清理”数据库,这些数据库已被使用且不会重复出现。
I have to open the room_id opening hours VCALENDAR -> extract data with Sabre process
For Loop through Exception VCALENDAR -> extract data with Sabre process
For Loop through Baikal VCALENDAR -> extract data with Sabre process
For Loop through Bookings VCALENDAR -> extract data with Sabre process
-> Process All -> Return Result, if room is free in the given time.
他们是否有任何智能算法,在拥有 ics 文件(开放时间、例外情况、预订、贝加尔湖预订)时检查给定时间段内的房间可用性?
谢谢!