私は以前にこれを試みましたが、許可するフィルターの数とリストするホテルの数によっては、重複するホテルの処理方法は言うまでもなく、非常に遅くなる可能性があります。
最終的には、フィルターオプションはほとんどありませんが
- プロパティタイプ:これを別のテーブルで正規化します
- 寝室:これをtinyintまたはsmallint(いずれも署名なし)として保存します。255の寝室を超え、65kを超えないプロパティがあるとは想像できません。
- 場所:これを別のテーブルで正規化します。理想的にはツリー形式で、関係が確実に記録されるようにします。
- 星の評価:これは、tinyintunsignedとして保存できます
ここでの問題は、誰かが3ベッドルームの上向きにフィルターを適用した場合でも、フィルターを元に戻すと結果が得られるため、2ベッドルーム、1ベッドルームの値を取得する必要があるということです。
1日の終わりに、非常に大きなメモリテーブル、WHEREステートメントとJOINステートメントを作成するためのロジック、およびセットグループ内のレコードをカウントアップする個々のクエリを使用してこれに対処しました。これは、ユーザーの休日の検索結果と同様のことを行うためのものであり、そのため、データは完全に一時的なものと見なされていました。あなたの目的のためには、はるかに小さなメモリテーブルが受け入れられる可能性がありますが、原則は似ています。