问题描述
我有一个酒店数据库。我有一个可用性数据库,其中包含每家酒店 2 年的日期。
所以hotel_id,date,status
如果有人想搜索从 X 到 XI 可用的酒店,则正在拉取所有酒店和这些日期,翻阅该日期集并将每个状态匹配到 6 个状态之一,并且如果返回的总晚数等于晚上提交它是可用的。这在有 1000 家酒店的地方很好,后来有 4000 家酒店就停止了。
如果有一种方法可以进行搜索,我可以比较介于两者之间并包括 2 个给定日期的所有日期。我最初有这个,但意识到这只是给我任何具有此范围内 ID 的酒店,而不是具有所有可用范围的酒店。
我目前的(不太有效)一个。
Availabilities::select('hotel_id')
->whereIn('status',['A','RA','RD','NA','ND','LA','LD'])
->where('date','>=',$date_from)
->where('date','<=',$date_to)
->pluck('hotel_id')
->toArray());
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)