मैंने पहले भी ऐसा करने की कोशिश की है, और यह इस बात पर निर्भर करता है कि आप कितने फ़िल्टर की अनुमति देते हैं और कितने होटलों की सूची बनाते हैं, यह बहुत धीमा हो सकता है, न कि यह उल्लेख करने के लिए कि आप डुप्लिकेट होटलों से कैसे निपटते हैं।
अंततः हालांकि आपके पास बहुत कम फ़िल्टर विकल्प होंगे
- प्रॉपर्टी का प्रकार :इसे एक अलग तालिका में सामान्य करें
- बेडरूम :इसे एक टिनींट या स्मॉलिंट (या तो अहस्ताक्षरित) के रूप में स्टोर करें, कल्पना नहीं कर सकते कि 255 बेडरूम से ऊपर के गुण हैं, और निश्चित रूप से 65k से ऊपर नहीं हैं
- स्थान:इसे एक अलग तालिका में सामान्यीकृत करें, आदर्श रूप से एक ट्री प्रारूप में यह सुनिश्चित करने के लिए कि संबंध नोट किए गए हैं
- स्टार रेटिंग :इसे एक छोटे से अहस्ताक्षरित के रूप में संग्रहीत किया जा सकता है
अब आपकी समस्या यह है कि यदि कोई 3 बेडरूम के लिए ऊपर की ओर फ़िल्टर लागू करता है, तो भी आपको 2 बेडरूम, 1 बेडरूम के लिए मान मिलना चाहिए, क्योंकि फ़िल्टर को वापस उसी में बदलने से परिणाम प्राप्त होंगे।
दिन के अंत में मैंने इसे एक बहुत बड़ी मेमोरी टेबल का उपयोग करके संबोधित किया, WHERE और JOIN स्टेटमेंट बनाने के लिए कुछ तर्क, और एक सेट ग्रुपिंग के भीतर रिकॉर्ड्स की गिनती करने वाली एक व्यक्तिगत क्वेरी। हालांकि यह उपयोगकर्ताओं के अवकाश खोज परिणामों के समान करने के लिए था, और इस तरह डेटा को पूरी तरह से क्षणिक माना जाता था। आपके उद्देश्यों के लिए एक बहुत छोटी मेमोरी टेबल स्वीकार्य होने की संभावना है, हालांकि सिद्धांत समान है।