वेब अनुप्रयोगों के लिए रिलेशनल डेटाबेस स्कीमा डिजाइन करते समय, मुझे अक्सर एक मामला मिलता है जहां मैं एक पंक्ति बनाने के लिए एक तालिका बनाता हूं, और केवल एक पंक्ति। ऐसा लगता है कि यह डिजाइन करने का गलत तरीका है, लेकिन मैं कुछ भी बेहतर नहीं कर सकता, या यह स्पष्ट रूप से "इसे करने का सही तरीका है।"
एक हालिया उदाहरण एक साइट है जो उपयोगकर्ताओं को होम पेज पर सामग्री को मैन्युअल रूप से नियंत्रित करने देती है। ठीक है, केवल एक होम पेज है। मैंने एक तालिका बनाई जिसमें मुखपृष्ठ बनाने के लिए सभी आवश्यक क्षेत्र थे, जैसे कि एक क्षेत्र के लिए एक पाठ क्षेत्र जिसमें वर्णनात्मक पाठ शामिल था। एक बड़ी छवि फ़ाइल का नाम संग्रहीत करने के लिए एक फ़ील्ड। कुछ विदेशी कुंजियाँ जो उन लेखों की ओर इशारा करती हैं जिन्हें मुखपृष्ठ पर दिखाया जाएगा, आदि यह काम करता है, लेकिन यह गलत लगता है कि सिर्फ एक पंक्ति के साथ एक तालिका है।
अतीत में मैंने कई अन्य डिजाइनों की कोशिश की है, जैसे कि मुखपृष्ठ तालिका में कई पंक्तियों को अनुमति देना और यादृच्छिक पर एक का चयन करना। मैंने "सक्रिय" नाम के बूलियन फ़ील्ड को जोड़ने और यादृच्छिक पर सक्रिय होमपेज़ में से एक का चयन करने की कोशिश की है। मैंने आवेदन तर्क में किसी भी समय केवल एक पंक्ति को सक्रिय करने के लिए मजबूर करने की कोशिश की है। मैंने एक होमपेज टेबल बनाने की कोशिश भी नहीं की है और अन्य सभी वस्तुओं, जैसे कि लेख, में विशेष रूप से फ़ीचर्ड_ऑन_होमपेज जैसे नामों के साथ बूलियन फ़ील्ड हैं।
ज्यादातर मामलों में मैं एक सेटिंग फ़ाइल में स्थिरांक के साथ होमपेज का निर्माण कर सकता था। सेटिंग्स फ़ाइल के साथ मुख्य समस्या यह है कि यह डेवलपर नियंत्रण में है। चूँकि उपयोगकर्ता द्वारा संपादित की जाने वाली होमपेज की सामग्री कुछ ऐसी है, इसे डेटाबेस में जाना होगा।
कई साइटों पर, मुझे यह समस्या नहीं है क्योंकि मैं एक क्वेरी के साथ मुखपृष्ठ जैसी चीजों का निर्माण कर सकता हूं जैसे कि पांच नवीनतम लेखों का चयन करना। लेकिन जब मेरे पास ऐसे पृष्ठ होते हैं जिन्हें मैन्युअल रूप से सख्त आवश्यकताओं के साथ क्यूरेट किया जाता है, तो इसे डेटाबेस में मॉडल करना मुश्किल हो जाता है। लेकिन कल्पना कीजिए कि आपको एक फोटो टेबल और एक लेख तालिका मिल गई है। आवश्यकता यह है कि होमपेज उपयोगकर्ता द्वारा नियंत्रित मैन्युअल रूप से पांच तस्वीरें, बिल्कुल तीन लेख और मनमाने ढंग से पाठ के दो ब्लॉक प्रदर्शित करेगा। आप कैसे डेटाबेस में सही तरीके से मॉडल करते हैं?
इसके अलावा, मुझे सिर्फ मॉडलिंग के अलावा कई अन्य मामलों में भी मॉडलिंग की समस्या है। यह सिर्फ सबसे आसान और सबसे अधिक लागू होने वाला उदाहरण है जिसके साथ मैं आ सकता हूं।