首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在日期范围内搜索对象的解决方案

问在日期范围内搜索对象的解决方案
EN

Stack Overflow用户
提问于 2012-12-18 16:34:48
回答 1查看 83关注 0票数 0

我正在建立某种类型的房屋预订网站,我正在寻找一些搜索引擎/数据库算法,可以根据房屋可用日期过滤对象

假设我有House1(可用日期: Jan1...Jan7,Jan20,Jan23)

如果我查询日期为Jan2-Jan3的所有对象-我应该找到该对象,如果我查询Jan6-Jan8 -我应该找到它

(注意:在数据库中,我有数千个对象和各种搜索过滤器,搜索速度应该很快)

EN

回答 1

Stack Overflow用户

发布于 2012-12-21 22:24:22

对于SQL中的索引,处理“数千个对象”需要几毫秒的时间。我知道下面的操作在MySQL / SQL-Server中很简单。

结构:(伪代码)

代码语言:javascript
复制
House(ID INT, ...)
Availability(ID INT, HouseID INT, Start DATETIME, Finish DATETIME)
/* Index on Availability (Start, Finish) */

查询:

代码语言:javascript
复制
SELECT DISTINCT H.ID, ...
FROM House H JOIN Availability A ON A.HouseID = H.ID
WHERE A.Start <= @DesiredFinish AND @DesiredStart <= A.Finish

这将返回与指定日期重叠的所有房屋。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13929086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档