0

私はある種の家予約ウェブサイトを構築しており、家の空室状況に基づいてオブジェクトをフィルタリングできる検索エンジン/データベースアルゴリズムを探しています

たとえば、House1 があるとします (利用可能な日付: Jan1...Jan7、Jan20、Jan23)

Jan2-Jan3 の日付についてすべてのオブジェクトを照会すると、そのオブジェクトが見つかるはずです。また、Jan6-Jan8 を照会すると、それが見つかるはずです。

(注:データベースには何千ものオブジェクトとさまざまな検索フィルターがあり、検索は高速に動作するはずです)

4

1 に答える 1

0

「数千のオブジェクト」の処理には、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

これにより、空室状況が指定された日付と重複するすべての家が返されます。

于 2012-12-21T14:24:21.913 に答える