यहां आपके कुछ प्रश्न हैं, इसलिए मैं उन्हें अलग से संबोधित करूंगा:
मुझे डेटाबेस में एक फ़ील्ड में कई चयनित आइटम संग्रहीत करने की आवश्यकता है
मेरा सामान्य नियम है:नहीं। यह कुछ ऐसा है जो आवश्यकता . के अलावा सभी एक विदेशी कुंजी के साथ दूसरी तालिका (या तीसरी)। निश्चित रूप से, यह अब आसान लग सकता है, लेकिन क्या होगा यदि उपयोग का मामला साथ आता है जहां आपको वास्तव में उन वस्तुओं के लिए व्यक्तिगत रूप से पूछताछ करने की आवश्यकता होती है? इसका मतलब यह भी है कि आपके पास आलसी तात्कालिकता के लिए अधिक विकल्प हैं और आपके पास कई ढांचे/भाषाओं में एक अधिक सुसंगत अनुभव है। इसके अलावा, आपके पास कनेक्शन टाइमआउट समस्या होने की संभावना कम है (30,000 वर्ण बहुत अधिक हैं)।
आपने उल्लेख किया है कि आप ENUM का उपयोग करने के बारे में सोच रहे थे। क्या ये मान निश्चित हैं? क्या आप उन्हें समय से पहले जानते हैं? अगर ऐसा है तो यह मेरी संरचना होगी:
आधार तालिका (अब आपके पास क्या है):
| id primary_key sequence
| -- other columns here.
आइटम तालिका:
| id primary_key sequence
| descript VARCHAR(30) UNIQUE
मानचित्र तालिका:
| base_id bigint
| items_id bigint
मानचित्र तालिका में विदेशी कुंजियाँ होंगी, इसलिए आधार तालिका में आधार_आईडी मानचित्र, और आइटम_आईडी आइटम तालिका में मैप होंगे।
और यदि आप इसे डीबी से पुनर्प्राप्त करने का एक आसान तरीका चाहते हैं, तो एक ऐसा दृश्य बनाएं जो जुड़ता है। आप इन्सर्ट और अपडेट नियम भी बना सकते हैं ताकि आप व्यावहारिक रूप से केवल एक टेबल के साथ काम कर रहे हों।
डेटा स्टोर करने के लिए मुझे किस प्रारूप का उपयोग करना चाहिए?
यदि आपको ऐसा कुछ करना है, तो केवल एक वर्ण चित्रित स्ट्रिंग का उपयोग क्यों न करें? यह CSV, XML, या JSON की तुलना में कम प्रोसेसिंग पावर लेगा, और यह छोटा होगा।
डेटा स्टोर करने के लिए मुझे किस प्रकार के कॉलम का उपयोग करना चाहिए?
व्यक्तिगत रूप से, मैं TEXT
. का उपयोग करूंगा . ऐसा नहीं लगता कि आप इसे BLOB
बनाकर बहुत कुछ हासिल करेंगे , और TEXT
, मेरे अनुभव में, यदि आप किसी प्रकार के IDE का उपयोग कर रहे हैं, तो इसे पढ़ना आसान है।