आइए डेटा मॉडल में और बदलाव करें, जिसे मैंने अपने पहले ब्लॉग पोस्ट में बनाया था, जैसे कि एक प्रशिक्षक और एक पाठ को वाहन सौंपने के लिए एक स्वचालित दृष्टिकोण, ग्राहकों को चालान करना और उन्हें ट्रैक करना।
सबसे पहले, मुझे वास्तव में होने से पहले एक प्रशिक्षक और वाहन को पाठों को सौंपने के लिए आवेदन पक्ष पर तर्क बनाने की आवश्यकता है। यहां सुनिश्चित करने के लिए मुख्य बात उपलब्धता है, अर्थात एक प्रशिक्षक या वाहन को एक पाठ को तभी सौंपा जा सकता है जब वे दोनों पाठ के निर्धारित समय पर उपलब्ध हों।
मुझे क्रमशः प्रशिक्षकों और वाहन के लिए अधिभोग का ट्रैक रखने के लिए दो अलग-अलग तालिकाओं का निर्माण करने की आवश्यकता है। आप सोच रहे होंगे कि मैं उपलब्धता के बजाय अधिभोग का ट्रैक क्यों रखना चाहता हूं। इसका उत्तर है, यदि हम उपलब्धता के बजाय अधिभोग को ट्रैक करते हैं, तो हमें प्रशिक्षकों द्वारा नियोजित अवकाश या वाहनों के लिए कुछ निर्धारित सेवा के कारण संसाधनों की अनुपलब्धता को संग्रहीत करने के लिए अधिक तालिकाएँ बनाने की आवश्यकता नहीं है। नियोजित अनुपलब्धता के मामले में, अभिलेखों को तदनुसार अधिभोग तालिकाओं में डाला जाता है।
मैं यहां एक धारणा बना रहा हूं कि प्रशिक्षक और वाहन केवल व्यावसायिक घंटों के दौरान उपलब्ध हैं, जैसे कि स्कूल द्वारा निर्धारित व्यावसायिक दिनों में सुबह 8:00 बजे से शाम 6:00 बजे तक। इसलिए मैं कह सकता हूं कि यदि मुझे staff_occupancy
टेबल।
तालिका के लिए संरचना staff_occupancy
इस प्रकार है:
कुछ बदलाव आवश्यकतानुसार किए जा सकते हैं। उदाहरण के लिए, एक प्रशिक्षक के लिए बाद के दो पाठों के बीच कम से कम 15 मिनट का अंतर होना चाहिए।
तालिका के लिए संरचना vehicle_occupancy
इस प्रकार है:
प्रशिक्षक और वाहन का आवंटन reservation
टेबल। मैंने पहले ही दो कॉलम जोड़ लिए थे, staff_id
और vehicle_id
, इस तालिका में। ये आवंटन स्पष्ट रूप से उनकी उपलब्धता के आधार पर होंगे।
इसके अलावा, मैं reservation_id
रखूंगा staff_occupancy
. में और vehicle_occupancy
ताकि किसी पाठ को रद्द करने की स्थिति में कर्मचारियों और वाहन के संबंधित अधिभोग को आसानी से मुक्त किया जा सके। लेकिन मैं इन दोनों कॉलमों को nullable . के रूप में रखूंगा क्योंकि अनिवार्य रूप से आरक्षण के कारण प्रशिक्षकों और वाहनों का अधिभोग नहीं होगा। क्या होगा अगर एक प्रशिक्षक छुट्टी पर चला जाता है? या कोई एक वाहन एक दिन के लिए सर्विस सेंटर में जाता है?
ऐसे परिदृश्यों में सॉफ्ट डिलीट की अनुमति देने के लिए, मैं is_active
. नामक एक कॉलम जोड़ूंगा इन दोनों तालिकाओं में।
चालान
चालान-प्रक्रिया की आवश्यकता के लिए, मैं एक तालिका बनाऊंगा, जिसका नाम है invoice
, चालान विवरण रखने के लिए customer_id
. सहित और reservation_id
. यहां, ग्राहकों को चालान किया जाना है लेकिन ग्राहक के लिए किए गए पाठों के आधार पर। इस प्रकार हमें reservation_id
. की आवश्यकता है इनवॉइस तालिका में भी कॉलम, ताकि किसी भी समय, ग्राहक के लिए आरक्षण के आधार पर विस्तृत चालान-प्रक्रिया पर एक रिपोर्ट खींच सके। मैं एक कॉलम भी बनाऊंगा, जिसका नाम है invoice_status_id
, चालान की स्थिति संग्रहीत करने के लिए तालिका में।
डेटाबेस मॉडल
वर्टाबेलो में डिज़ाइन की गई अद्यतन डेटाबेस संरचना यहां दी गई है:
निष्कर्ष
अब तक आप यह मानने लगे होंगे कि ड्राइविंग स्कूल की आरक्षण प्रणाली के लिए डेटा मॉडलिंग उतना ही दिलचस्प और आकर्षक है जितना कि गाड़ी चलाना सीखना?
लेख के संबंध में अपने प्रश्न और सुझाव बेझिझक पोस्ट करें। मुझे उनका जवाब देने और अपने सुझावों को अपने अगले लेख में शामिल करने में बहुत खुशी हो रही है।