यहां जोर से सोचकर, लेकिन शायद कुछ श्रेणियों (जैसे लाल, पीला और हरा) को 'श्रेणियों' के बजाय 'टैग' के रूप में देखना और उन्हें अलग तर्क के साथ संभालना उपयोगी होगा। इससे आपको नेस्टेड सेट मॉडल रखने और अनावश्यक डुप्लिकेशन से बचने दिया जाएगा। इसके अलावा, यह आपको अपनी श्रेणियों को सरल रखने की अनुमति देगा।
यह जानकारी है कि आप जानकारी के बारे में कैसा सोचते हैं। श्रेणियां गुणों का प्रतिनिधित्व करने का एक और तरीका हैं। मैं समझता हूं कि आपका उदाहरण केवल चित्रकारी उद्देश्यों के लिए था, लेकिन यदि आप रंग से फल को वर्गीकृत करने जा रहे हैं, तो आप मांस को उसी तरह वर्गीकृत क्यों नहीं करेंगे, यानी सफेद मांस और लाल मांस? सबसे अधिक संभावना है कि आप नहीं करेंगे। तो मेरा मुद्दा यह है कि रंग से फल को वर्गीकृत करना शायद आवश्यक नहीं है।
इसके बजाय, कुछ विशेषताओं को अन्य तरीकों से बेहतर ढंग से दर्शाया जाता है। वास्तव में, अपने सबसे सरल रूप में, इसे 'रंग' लेबल वाले 'भोजन' तालिका में एक कॉलम के रूप में रिकॉर्ड किया जा सकता है। या, यदि यह एक बहुत ही आम विशेषता है और आप खुद को मूल्य को महत्वपूर्ण रूप से डुप्लिकेट करते हैं, तो इसे 'रंग' नामक एक अलग तालिका में विभाजित किया जा सकता है और प्रत्येक खाद्य वस्तु को किसी तीसरे तालिका से मैप किया जा सकता है। बेशक, अधिक सार दृष्टिकोण तालिका को 'टैग' के रूप में सामान्यीकृत करना होगा और प्रत्येक रंग को एक व्यक्तिगत टैग के रूप में शामिल करना होगा जिसे तब किसी भी खाद्य पदार्थ में मैप किया जा सकता है। फिर आप किसी भी प्रकार की खाद्य वस्तुओं (रंगों) को किसी भी प्रकार की खाद्य वस्तुओं में मैप कर सकते हैं, जिससे आपको कई सारे रिश्ते मिलते हैं और आपके श्रेणी के पदनामों को और अधिक सामान्यीकृत करने के लिए मुक्त कर सकते हैं।
मुझे पता है कि टैग श्रेणियां या श्रेणियां टैग हैं, आदि के बारे में चल रही बहस चल रही है, लेकिन यह एक उदाहरण है जिसमें वे मानार्थ हो सकते हैं और एक अधिक सार और मजबूत प्रणाली बना सकते हैं जो प्रबंधित करना आसान हो।
हाँ, मैं एक उत्तर खोज रहा हूं लेकिन इस विषय पर कुछ भी निश्चित नहीं पाया जा सकता है। मैं इस बिंदु पर MySQL का उपयोग कर रहा हूं, तो क्या मैं ऐप्पल के दोहराव के साथ भविष्य में गैर-मुक्त डीबी में परिवर्तित होने वाली समस्याओं में भाग लेगा? या क्या मुझे इस बिंदु पर एकाधिक माता-पिता की अनुमति न देकर इस समस्या को हल करने और हल करना चाहिए और बस नेस्टेड सेट दृष्टिकोण का उपयोग करना चाहिए? या MySQL का उपयोग करने वाले इस मुद्दे से निपटने का कोई और तरीका है? – swisscheese
कम से कम ओरेकल के संदर्भ में आप किसी भी समस्या में भाग नहीं पाएंगे। नेस्टेड सेट दृष्टिकोण सुंदर पोर्टेबल है क्योंकि यह मानक एसक्यूएल संरचनाओं का उपयोग करता है। सामान्य संदर्भ में मुझे सेब _reference_ के दोहराव के साथ कोई बुराई नहीं दिखाई देती है। मैंने अपने अभ्यास में नेस्टेड सेट का कभी भी उपयोग नहीं किया, हालांकि मैं इससे परिचित हूं। लेकिन मैं पेड़ के संशोधनों (नोड्स को जोड़ने/हटाने/स्थानांतरित करने) के बारे में अधिक चिंतित हूं। वे आम तौर पर धीमे होते हैं। यह भी ध्यान रखें कि यह एक मानक तकनीक नहीं है और आपके समाधान के रखरखाव करने वालों को मुश्किल शुरुआत की आवश्यकता हो सकती है। –
इस समस्या के साथ आपकी मदद के लिए धन्यवाद। यदि आपके पास मौका है और आप इच्छुक हैं तो कृपया http://stackoverflow.com/questions/5395463/data-modeling-modeling-categories-subcategories-in-mysql – swisscheese