डेटा मॉडल डिजाइनर
डेटा मॉडल डिजाइनर का उपयोग कर डेटाबेस का निर्माण
डेटाबेस डिजाइन
अपना खुद का डेटाबेस डिजाइन करने का समय आ गया है। ऐसा करने के लिए, टैब पर जाएं Database बाएं पैनल पर।
डेटा मॉडल
डेटाबेस में डेटा विशेष तालिकाओं (मॉडल) के रूप में संग्रहीत किया जाता है। और आप देख सकते हैं कि हमारे पास पहले से ही एक मॉडल है। यह प्राधिकरण मॉड्यूल का हिस्सा है और डिफ़ॉल्ट रूप से प्रत्येक प्रोजेक्ट में शामिल है। इसके लिए धन्यवाद, एप्लिकेशन के नए उपयोगकर्ता बनाए जाते हैं और मौजूदा प्रबंधित किए जाते हैं। लेकिन हम अभी इसके अध्ययन पर ध्यान नहीं देंगे, हम अपना खुद का मॉडल बनाएंगे।
कल्पना कीजिए कि हम एक नक्शा सेवा विकसित कर रहे हैं। आइए एक मॉडल बनाएं जिसमें देशों के बारे में जानकारी हो। इसे बनाने के लिए, आपको कैनवास के खाली क्षेत्र में राइट-क्लिक करना होगा और Create empty model.
बनाने के लिए, हमें केवल मॉडल का नाम निर्दिष्ट करना होगा। हम पाठ्यक्रम के आगे के मॉड्यूल में ऑटो-जेनरेशन ऑफ एंडपॉइंट्स और यूजर इंटरफेस तत्वों से निपटेंगे।
मॉडल फ़ील्ड
कृपया ध्यान दें कि निर्माण के तुरंत बाद, मॉडल में पहले से ही 4 फ़ील्ड हैं। ये सिस्टम फ़ील्ड हैं, जिनकी उपस्थिति मॉडल के प्रारंभिक निर्माण और आगे के उपयोग को बहुत सरल बनाती है।
ID (integer) - विशिष्ट पहचानकर्ता, प्राथमिक कुंजी। यह तालिका में प्रत्येक नई प्रविष्टि के लिए स्वचालित रूप से बनाया गया है और इसका उद्देश्य यह सुनिश्चित करना है कि कोई डुप्लिकेट न हो। यह आईडी द्वारा है कि आप एक तालिका में विशिष्ट रूप से एक रिकॉर्ड की पहचान कर सकते हैं। इसका मान 1 से शुरू होता है और प्रत्येक नई प्रविष्टि के लिए स्वचालित रूप से 1 से बढ़ जाता है।
CreatedAt (datetime) - वह समय जब तालिका में रिकॉर्ड बनाया गया था।
UpdatedAt (datetime) - वह समय जब प्रविष्टि को अंतिम बार संशोधित किया गया था।
DeletedAt (datetime) - वह समय जब प्रविष्टि हटाई गई थी। बेशक, केवल अगर सॉफ्ट-रिमूवल का इस्तेमाल किया गया था। यही है, ऐसा विलोपन, जब रिकॉर्ड को केवल हटाए गए के रूप में चिह्नित किया जाता है और उस तक पहुंच के अनुरोधों द्वारा फ़िल्टर किया जाता है, लेकिन साथ ही तालिका में भौतिक रूप से रहता है। यह बल्क डिलीट से अलग है, जो वास्तव में डेटा को पूरी तरह से हटा देता है।
सिस्टम वाले के अलावा, बनाए गए मॉडल में कस्टम फ़ील्ड जोड़ना बुद्धिमानी होगी। मान लीजिए हम देश का नाम और उसके बारे में जानकारी के साथ कुछ विवरण देखना चाहते हैं।
फ़ील्ड प्रकार चुनना कोई समस्या नहीं होनी चाहिए। String नाम के लिए उपयुक्त है, और Text सूचनात्मक विवरण के लिए उपयुक्त है।
इसके अलावा, चार और स्विच उपलब्ध हैं:
Multiple values (Array) - एकल प्रविष्टियों के बजाय सरणियों का उपयोग करें।
Not null - निर्दिष्ट फ़ील्ड खाली नहीं हो सकती, इसमें हमेशा डेटा होना चाहिए।
Unique - फ़ील्ड का मान अद्वितीय होना चाहिए, इस मॉडल में ऐसे दो रिकॉर्ड नहीं हो सकते हैं जिनके मान इस फ़ील्ड के समान हों।
Index - इंगित करता है कि खोज को गति देने के लिए इस क्षेत्र के लिए एक विशेष सूचकांक बनाया जाएगा।
सामान्य तौर पर, यदि वास्तव में आवश्यक हो तो केवल अंकों की जांच करना ही सही है। उदाहरण के लिए, हम देश के नामों के लिए Not null और Unique को चिह्नित कर सकते हैं, यह मानते हुए कि बिना नाम वाला देश या एक ही नाम वाले दो देश नहीं हो सकते। हालांकि, एप्लिकेशन का तर्क बनाने के चरण में इसे नियंत्रित करना एक अच्छा विचार है, और डेटाबेस पर ही प्रतिबंध नहीं लगाना है।
इसी तरह, शहरों के बारे में जानकारी के साथ एक टेबल बनाएं। इस बारे में सोचें कि इसमें कौन से डेटा फ़ील्ड हो सकते हैं, ये फ़ील्ड किस प्रकार के हैं।
डेटा मॉडल संबंध
डेटाबेस में डेटा बिखरी हुई तालिकाओं के रूप में अपने आप मौजूद नहीं है। वे एक निश्चित तरीके से एक दूसरे से जुड़े हुए हैं। डेटा मॉडल विकसित करने की कुंजी इन संबंधों को परिभाषित करना और संबंध बनाना है।
इस तरह के लिंक को स्थापित करने के लिए, माउस के साथ एक मॉडल की सीमा से दूसरे तक एक रेखा खींचना आवश्यक है। हमारे उदाहरण में, हम निश्चित रूप से जानते हैं कि प्रत्येक शहर किसी न किसी देश में स्थित है, इसलिए हम एक देश से दूसरे शहर की एक कड़ी बना सकते हैं।
3 अलग-अलग प्रकार के कनेक्शन हैं:
एक-से-एक (has one) । तालिका में प्रत्येक रिकॉर्ड को संबंधित तालिका से एक रिकॉर्ड में मैप किया जाता है (यह विपरीत में भी सच है)। एक साधारण उदाहरण एक व्यक्ति और उनका पासपोर्ट है। हम हमेशा सुनिश्चित हो सकते हैं कि यह कनेक्शन अद्वितीय है। पासपोर्ट में केवल एक धारक हो सकता है, और प्रत्येक व्यक्ति के पास केवल एक वैध पासपोर्ट हो सकता है।
एक-से-अनेक (has many) । एक तालिका के प्रत्येक रिकॉर्ड में दूसरी तालिका में कई रिकॉर्ड हो सकते हैं। हमारा डेटाबेस एक समान उदाहरण है। एक देश में कई अलग-अलग शहर हो सकते हैं, लेकिन प्रत्येक शहर केवल एक ही देश का हो सकता है। यह वह संबंध है जो हम बनाएंगे।
अनेक-से-अनेक । एक संबंध जिसमें एक तालिका के एकाधिक रिकॉर्ड दूसरे से एकाधिक रिकॉर्ड के अनुरूप हो सकते हैं। एक सरल उदाहरण शिक्षकों और छात्रों के बीच संबंध है। प्रत्येक शिक्षक कई छात्रों को पढ़ा सकता है, जैसे प्रत्येक छात्र कई अलग-अलग शिक्षकों से सीख सकता है।