我正在建立某种类型的房屋预订网站,我正在寻找一些搜索引擎/数据库算法,可以根据房屋可用日期过滤对象
假设我有House1(可用日期: Jan1...Jan7,Jan20,Jan23)
如果我查询日期为Jan2-Jan3的所有对象-我应该找到该对象,如果我查询Jan6-Jan8 -我应该找到它
(注意:在数据库中,我有数千个对象和各种搜索过滤器,搜索速度应该很快)
发布于 2012-12-21 22:24:22
对于SQL中的索引,处理“数千个对象”需要几毫秒的时间。我知道下面的操作在MySQL / SQL-Server中很简单。
结构:(伪代码)
House(ID INT, ...)
Availability(ID INT, HouseID INT, Start DATETIME, Finish DATETIME)
/* Index on Availability (Start, Finish) */查询:
SELECT DISTINCT H.ID, ...
FROM House H JOIN Availability A ON A.HouseID = H.ID
WHERE A.Start <= @DesiredFinish AND @DesiredStart <= A.Finish这将返回与指定日期重叠的所有房屋。
https://stackoverflow.com/questions/13929086
复制相似问题