मैं डेटाबेस डिजाइन के लिए बिल्कुल नया हूं, लेकिन मैं मूलभूत सिद्धांतों को समझता हूं। मैं एक रिलेशनल डेटाबेस बना रहा हूं और मैं पुन: प्रयोज्य प्रकार या कक्षा बनाने के समान कुछ करना चाहता हूं। उदाहरण के लिए, मान लें कि मेरे पास Customer
तालिका और Item
तालिका है। ग्राहक और आइटम मानक 1 से कई रिश्ते से संबंधित हैं, इसलिए आइटम में CustomerId
नामक कॉलम है।एक रिलेशनल डेटाबेस में एक कस्टम प्रकार का मॉडल कैसे करें?
मैं प्रत्येक ग्राहक और प्रत्येक आइटम के लिए कई "नोट्स" भी पसंद करूंगा। एक सामान्य ओओपी मॉडल में, मैं सिर्फ Note
कक्षा बनाउंगा और जब भी मुझे आवश्यकता हो, उसके उदाहरण बनाएं। बेशक, एक संबंधपरक डेटाबेस अलग है। मैं Note
तालिका रखने के बारे में सोच रहा था, और मैं ग्राहक और नोट के साथ-साथ आइटम और नोट के बीच 1 से कई रिश्ते चाहता हूं। समस्या यह है कि नोट तालिका में एक दूसरे के लिए एक कॉलम होना चाहिए जो इस "प्रकार" का उपयोग करना चाहता है। (नीचे उदाहरण देखें)
मैंने यह भी सोचा कि इसके बजाय, मैं नोट और ग्राहक/आइटम (या अन्य) के बीच एक मध्यवर्ती तालिका बना सकता हूं। यह मुझे संदर्भित प्रत्येक तालिका के लिए नोट में अतिरिक्त कॉलम से बचने की अनुमति देगा, इसलिए नोट अपरिवर्तित रह सकता है क्योंकि मैं नोट्स की आवश्यकता वाले अधिक टेबल जोड़ता हूं। मैं सोच रहा हूं कि यह बेहतर समाधान है। (उदाहरण देखें)
इस तरह की स्थिति आमतौर पर कैसे संभाली जाती है? क्या मैं सही करने के करीब हूँ? मैं ऊपर वर्णित कार्यक्षमता की तरह होने के लिए अपने डेटाबेस को डिज़ाइन करने के तरीके पर किसी भी सलाह की सराहना करता हूं।
प्रश्न: एक नोट कभी, विभिन्न इकाइयों पर लागू होता है; यानी एक ही नोट ग्राहक और एक वस्तु दोनों पर लागू हो सकता है? या एक ही नोट एकाधिक ग्राहकों या एकाधिक वस्तुओं पर लागू हो सकता है? –
नहीं, प्रत्येक नोट केवल एक ग्राहक, आइटम, या जो कुछ भी होगा। –
आपके डेटाबेस डिज़ाइन में कुछ भी नहीं रोकता है। आपको टेक्स्ट और DATE फ़ील्ड को नोट से ग्राहक नोट और आइटम नोट में स्थानांतरित करना चाहिए ताकि यह सुनिश्चित किया जा सके कि प्रत्येक नोट को अधिकतम ग्राहक या आइटम से जोड़ा जा सकता है। नतीजतन, नोट तालिका पूरी तरह समाप्त हो जाएगी। –