मैं एक खोज पृष्ठ पर काम कर रहा हूं जो उपयोगकर्ताओं को बिक्री के लिए घरों की खोज करने की अनुमति देता है। विशिष्ट खोज मानदंडों में मूल्य/ज़िप कोड/# शयनकक्ष/आदि शामिल हैं।डेटाबेस में "सहेजी गई खोज" को संग्रहीत करने का सबसे अच्छा अभ्यास क्या है
मैं उपयोगकर्ता को इस मानदंड को डेटाबेस में सहेजने और दैनिक घरों को ईमेल करने की अनुमति देना चाहता हूं।
मैं कर सकता या तो:
1) एक स्ट्रिंग में एक "SavedSearch" वस्तु को क्रमानुसार और डेटाबेस के लिए कि बचाने के लिए, तो deserialize के रूप में की जरूरत है।
2) खोज मानदंडों के अनुरूप एक tblSavedSearch में कॉलम की एक सूची है - मूल्य/ज़िप/# बेडरूम/आदि।
मुझे चिंतित है कि यदि मैं विकल्प 1 चुनता हूं, तो मेरा सहेजा गया खोज मानदंड बदल जाएगा और डेटाबेस में खोजी गई वस्तुओं को अमान्य कर देगा, लेकिन विकल्प 2 इष्टतम समाधान की तरह महसूस नहीं करता है।
दूसरों ने इस समस्या को हल कैसे किया है?
मैं इस दृष्टिकोण के साथ आगे बढ़ गया। यह क्वेरी को क्रमबद्ध करने के रूप में सेक्सी नहीं है, लेकिन चूंकि मैं हर रात सहेजी गई खोज चलाता हूं, इसलिए यह मेरे लिए कोड की कुछ और पंक्तियां थी और एक आलसी प्रोग्रामर के रूप में, यह मेरे लिए "सर्वश्रेष्ठ" था। धन्यवाद विन्सेंट! –
मैं बस इतना जोड़ना चाहूंगा कि भले ही यह * सेक्सी को क्वेरी को क्रमबद्ध करने और स्टोर करने के लिए प्रतीत होता है, फिर भी यह गंभीर सिरदर्द का कारण बन सकता है यदि क्वेरी ऑब्जेक्ट की संरचना ए) खराब तरीके से डिज़ाइन की गई है, या बी) जब वस्तु हो जाती है अधिक जटिल उदाहरण डीबी में सीरियलाइज्ड ऑब्जेक्ट्स को अपडेट करना क्योंकि वे उचित डिफ़ॉल्ट (जो आपको कोड करना होगा) का समर्थन नहीं करते हैं, वे बहुत गन्दा हो सकते हैं। और ध्यान दें कि अन्य साइट्स/सेवाएं (Google, याहू !, ग्लोब्रिक्स (उनकी सहेजी गई खोजों में अच्छा उदाहरण) इत्यादि!) यूआरएल और HTTP के कच्चे लाभ लाने के लिए एक और अधिक विश्वसनीय वास्तुकला का उपयोग करें। –
तो क्रॉन स्क्रिप्ट प्रत्येक सहेजी गई खोज के लिए HTTP अनुरोध करेगा? कोर डेटा प्राप्त करने के लिए एक पूर्ण HTTP अनुरोध बहुत अधिक ओवरहेड नहीं है? साथ ही, क्या यह मानता है कि वेब अनुरोध के लिए प्रस्तुत आउटपुट (एचटीएमएल, मैं अनुमान लगा रहा हूं) ईमेल में उपयोग के लिए उपयुक्त है? मुझे लगता है कि आप एक ध्वज पारित कर सकते हैं जो आउटपुट को बदलता है, संदर्भ-परिवर्तन का एक प्रकार। लेकिन वह अभी भी HTTP ओवरहेड को संबोधित नहीं करता है। Whaddya सोचते हैं? –