2012-12-31 12 views
5

के साथ एफटीएस टेबल का उपयोग करें यह एक डिज़ाइन प्रश्न है - न केवल कोडिंग प्रश्न।एंड्रॉइड सर्च: सामान्य एसक्यूएलएट डीबी टेबल्स

मेरे पास पहले से एक ऐप है जो SQLite डीबी तालिकाओं में डेटा संग्रहीत करता है। अब मैं इसमें खोज सुविधा जोड़ना चाहता हूं।

मैं समझता हूं कि खोज सुविधा को सक्षम करने के लिए मुझे एफटीएस टेबल की आवश्यकता है।

टेबल मैं होती है (नहीं बिल्कुल वैसा ही है, लेकिन दे रही है बहुत समान उदाहरण):

सामग्री तालिका - जैसे स्तंभ हैं: ईद, शीर्षक, सामग्री, से, पर बनाया गया, द्वारा परिवर्तित बनाया गया, आदि पर बदल दिया है ...

टिप्पणियाँ तालिका - जैसे स्तंभ हैं: ईद, टिप्पणियाँ,, द्वारा बनाया गया, बनाने की तिथि आदि के जवाब में ...

उपयोगकर्ता डेटा, मेटा डाटा, श्रेणियाँ जैसे अन्य तालिकाओं , टैग आदि

यहां मैं केवल शीर्षक, सामग्री और टिप्पणियों पर खोज क्षमता चाहता हूं। जाहिर है, मुझे अन्य कॉलम पर खोज क्षमता की आवश्यकता नहीं है जैसे कि

सबसे अच्छा विकल्प कौन सा है?

  1. क्या मुझे अपनी पुरानी टेबल को त्यागना चाहिए और केवल एफटीएस तालिका बनाना चाहिए?
  2. क्या मुझे पुरानी टेबल का उपयोग करना जारी रखना चाहिए और नई एफटीएस टेबल बनाना चाहिए जो केवल खोज सुविधा का समर्थन करते हैं।

समस्याएं है कि मैं विकल्प 1 के साथ देख रहे हैं:

  • यह एक विघटनकारी बदलाव है!
  • मेरे पास कई गैर-पाठ कॉलम वाले एकाधिक तालिकाओं का एक सेट है जिस पर मैं खोज करने का इरादा नहीं रखता हूं। मैं उन्हें एफटीएस में कैसे मॉडल करूं?
  • अभी मैं आरडीबीएमएस की सुविधाओं का उपयोग कर रहा हूं जैसे कि जॉइन इत्यादि जो मुझे लगता है कि अगर मैं पूरी तरह से एफटीएस टेबल पर स्विच करता हूं तो मैं ऐसा करने में सक्षम नहीं हूं!

समस्याएं है कि मैं विकल्प 2 के साथ देख रहे हैं:

  • यह डुप्लिकेट तालिकाओं में परिणाम होगा - और अधिक स्मृति/अंतरिक्ष की खपत होगी!
  • हर बार जब मैं अपने एसक्यूएल टेबल में एक प्रविष्टि डाल/अपडेट/संशोधित करता हूं, तो मुझे एफटीएस टेबल में एक ही बदलाव करना होगा।

तो, सबसे अच्छा विकल्प क्या है? क्या किसी भी शरीर को ऐसी ही चुनौतियों का सामना करना पड़ा है?

उत्तर

9

गैर-एफटीएस खोजों के लिए एफटीएस टेबल कुशलतापूर्वक पूछताछ नहीं की जा सकती है, इसलिए विकल्प 1 बाहर है।

संपूर्ण एफटीएस तालिका अनिवार्य रूप से एक सूचकांक है। यह एक गति/अंतरिक्ष व्यापार है, और पूर्ण-पाठ खोज करने की क्षमता आमतौर पर इसके लायक है। मूल पाठ को दो बार संग्रहीत करने से बचने के लिए, external content tables का उपयोग करें।

मूल और एफटीएस टेबल को सिंक में रखने के लिए, ट्रिगर्स का उपयोग करें।

+0

प्रासंगिक अनुभाग को इंगित करने के लिए धन्यवाद ... जाहिर है मैंने पूरे दस्तावेज को नहीं पढ़ा .. –

संबंधित मुद्दे