मुझे नहीं लगता कि मूल पोस्ट में लाए गए स्कीमा विचारों पर पर्याप्त ध्यान दिया गया था। तो, यहाँ किसी भी newbies के लिए विचार करने के लिए कुछ है।
मान लीजिए कि आपने आगे बढ़कर इस समाधान का निर्माण किया। आपके सभी मासिक धर्म मानों को एक एकल मान में संग्रहीत किया जाता है और डेटाबेस में संग्रहीत किया जाता है। आप वास्तव में अपने डेटाबेस में [थोड़ी] जगह बचा रहे हैं और कुछ समय कोडिंग कर रहे हैं।
अब विचार करते हैं कि आपको वर्तमान चेकबॉक्स 3 और 4 के बीच एक नया चेकबॉक्स जोड़ने का लगातार और आसान काम करना होगा। आपका विकास प्रबंधक, ग्राहक, जो यह अपेक्षा करता है कि यह एक साधारण बदलाव है।
तो आप UI (आसान भाग) में चेकबॉक्स को जोड़ दें। आपका लूपिंग कोड पहले से ही मानों को अलग कर देगा चाहे कितने भी चेकबॉक्स हों। आप यह भी आंकते हैं कि आपका डेटाबेस फ़ील्ड सिर्फ एक varchar या अन्य स्ट्रिंग प्रकार है इसलिए यह ठीक होना चाहिए।
क्या होता है जब ग्राहक या आप परिवर्तन से पहले डेटा को देखने की कोशिश करते हैं? आप अनिवार्य रूप से बाएं से दाएं क्रमबद्ध हैं। हालाँकि, अब 3 के बाद के मान 1 वर्ण द्वारा बंद हो गए हैं। आप अपने सभी मौजूदा डेटा के साथ क्या करने जा रहे हैं? क्या आप कोई एप्लिकेशन लिख रहे हैं, इसे डेटाबेस से वापस खींच लें, इसे नए प्रश्न स्थान के लिए डिफ़ॉल्ट मान में जोड़ने की प्रक्रिया करें और फिर इसे डेटाबेस में वापस स्टोर करें? क्या होता है जब आपके पास एक सप्ताह या महीने में कई नए मूल्य होते हैं? यदि आप स्थानों को स्थानांतरित करते हैं और jQuery उन्हें एक अलग क्रम में संसाधित करता है तो क्या होगा? आपके सभी डेटा को ठीक कर दिया गया है और इसे फिर से व्यवस्थित करने के लिए फिर से तैयार किया जाना है।
एक तंग कुंजी-मूल्य संबंध प्रदान नहीं करने की पूरी अवधारणा लुडाक्रिस है और आपको बाद में के बजाय जल्द ही परेशानी में डाल देगी। आप में से जो इस पर विचार कर रहे हैं, कृपया नहीं। स्कीमा परिवर्तन के अन्य सुझाव ठीक हैं। एक बच्चे की मेज, मुख्य तालिका में अधिक फ़ील्ड, एक प्रश्न-उत्तर तालिका आदि का उपयोग करें। उस डेटा की संरचना को बदलने के अधीन होने पर बस गैर-लेबल डेटा को संग्रहीत न करें।