/ / MySQL तालिका डिज़ाइन: तालिका भूमिकाएं [बंद] - mysql, डेटाबेस, डेटाबेस-डिज़ाइन

MySQL तालिका डिज़ाइन: टेबल भूमिकाएं [बंद] - mysql, डेटाबेस, डेटाबेस-डिज़ाइन

मेरे पास मेरे डेटाबेस में एंटरप्राइज़ नामक एक टेबल है। अगर उद्यम मेरी कंपनी को अपनी मांग व्यक्त करता है, तो उद्यम हमारी संभावना बन जाएगा। और उसके बाद, यदि उद्यम मेरी कंपनी के प्रस्ताव को स्वीकार करता है, तो हम अनुबंध पर हस्ताक्षर करेंगे, और उद्यम ग्राहक बन जाएगा।

अब, मैंने 3 टेबल बनाए हैं जो एंटरप्राइज़, प्रॉस्पेक्शन, क्लाइंट हैं।

तो, मुझे डेटाबेस कैसे डिजाइन करना चाहिए?

उत्तर:

जवाब के लिए 2 № 1

एक दृष्टिकोण एक टेबल होना होगा Companies, और आपके पास पहले से मौजूद तीन टेबल हैं। सभी तीन तालिकाओं में फ़ील्ड कंपनी आईडी है जिसमें एक विदेशी कुंजी कंसट्रिंट है जो इसे कंपनियों की तालिका में जोड़ती है। इस डिज़ाइन का लाभ यह है कि आपको कंपनी की जानकारी एक ही स्थान पर रखना है और इसमें कोई डुप्लिकेशन नहीं है।

एक और तरीका कंपनियों की तालिका में एक क्षेत्र होना होगा, जो उन्हें उद्यम, संभावना, या ग्राहक के रूप में चिह्नित करता है।

आपको जिस डिजाइन को चुनना चाहिए वह काफी हद तक निर्भर करता हैविभिन्न वर्गों के लिए जानकारी। यदि आप कंपनी टेबल की तुलना में विरासत के साथ सोचते हैं (यानी एक ग्राहक एक संभावना है एक उद्यम है)। हालांकि, अगर थर्म बड़ी मात्रा में जानकारी है और पहले दृष्टिकोण की तुलना में तीनों वर्गों में से प्रत्येक के लिए जानकारी अलग है तो बेहतर होगा।

हालांकि, आपको हमेशा रखने की कोशिश करनी चाहिएएक स्थान पर जानकारी, यानी एक फ़ील्ड / टेबल (= पूरी तरह से सामान्यीकृत) में। कुछ मामलों में आप प्रदर्शन सिद्धांतों के लिए इस सिद्धांत से विचलित हो सकते हैं, लेकिन ध्यान रखें कि इसका मतलब उच्च रखरखाव ओवरहेड भी है - जब कोई मान बदलता है तो आपको एन टेबल अपडेट करना होगा।