Database
 sql >> डेटाबेस >  >> RDS >> Database

पार्किंग स्थल प्रबंधन प्रणाली के लिए डेटा मॉडल का निर्माण

अनुसंधान से पता चलता है कि कारें अपने जीवनकाल के 95% के लिए खड़ी रहती हैं, यह सुझाव देते हुए कि पार्किंग प्रबंधन प्रणाली स्मार्ट, कुशल और मजबूत होनी चाहिए। इस लेख में, हम ऐसी प्रणाली के लिए एक डेटा मॉडल तैयार करेंगे।

परिचय

इससे पहले कि हम अपने डेटा मॉडल का निर्माण शुरू करें, हमें पहले यह समझना चाहिए कि पार्किंग स्थल कैसे संरचित होते हैं और वे कैसे काम करते हैं। आइए इन दो प्रमुख क्षेत्रों पर एक संक्षिप्त नज़र डालें।

  1. पार्किंग स्थल कैसे संरचित होते हैं?

    एक विशिष्ट पार्किंग स्थल में एक या अधिक ब्लॉक होते हैं जिन्हें आगे फर्श में विभाजित किया जाता है। प्रत्येक मंजिल में कई पंख होते हैं जो ड्राइवरों को खुद को उन्मुख करने और उनके पार्किंग स्थलों को याद रखने में मदद करते हैं। इन्हें आमतौर पर अक्षरों के साथ लेबल किया जाता है, जैसे "ए", "बी", "सी", और इसी तरह। एक मंजिल में आमतौर पर ऊंचाई की सीमा होती है जो कुछ वाहनों को पार्किंग में प्रवेश करने से रोकती है। इसके अतिरिक्त, एक मंजिल में कई विशिष्ट संख्या वाले पार्किंग स्लॉट होते हैं। इनमें से कुछ स्लॉट विकलांग लोगों के लिए आरक्षित हैं; दूसरों को एक निश्चित कीमत पर नियमित आगंतुकों द्वारा आरक्षित किया जा सकता है।

  2. पार्किंग स्थल कैसे काम करते हैं?

    यह समझने के लिए कि पार्किंग स्थल कैसे संचालित होते हैं, हमें उन लोगों के बारे में अधिक जानना चाहिए जो पार्किंग स्थल पर जाते हैं। पार्किंग में प्रवेश करने वाले ग्राहक निम्नलिखित समूहों में से एक से संबंधित हैं:

    • एक नियमित ग्राहक जिसने एक द्वि-साप्ताहिक, मासिक या वार्षिक पास खरीदा है।
    • एक प्रीपेड ग्राहक जिसने दूरस्थ रूप से (फोन पर या ऑनलाइन) स्लॉट बुक किया है।
    • एक वॉक-इन ग्राहक जिसके पास न तो पास है और न ही दूर से स्लॉट बुक किया है। ऐसे ग्राहक को उपलब्धता के आधार पर एक स्लॉट आवंटित किया जाएगा।

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

    जो लोग दूरस्थ पार्किंग आरक्षण करते हैं वे आम तौर पर केवल कुछ घंटों की सीमित समय खिड़की के लिए अपने निर्दिष्ट स्लॉट का उपयोग कर सकते हैं, जिसके बाद स्लॉट मुक्त हो जाते हैं। जब ये आगंतुक पार्किंग में प्रवेश करते हैं, तो उन्हें अपने आरक्षित स्लॉट में पार्क करना होगा। उन ग्राहकों से जुर्माना वसूला जाता है जो अपना समय समाप्त होने के बाद पार्किंग स्थल नहीं छोड़ते हैं, लेकिन ग्राहक अपने आरक्षण की समय सीमा समाप्त होने से पहले निश्चित रूप से छोड़ सकते हैं। कुछ पार्किंग स्थलों में एक निश्चित न्यूनतम समय खिड़की होती है (उदाहरण के लिए, ग्राहक को तीन घंटे के लिए एक स्लॉट बुक करना पड़ सकता है, भले ही वे केवल एक घंटे के लिए जाने वाले हों)।

    वॉक-इन ग्राहकों को पार्किंग में प्रवेश करने पर पार्किंग पर्ची दी जाती है। एक पार्किंग स्लॉट तब ग्राहक को सौंपा जाता है, क्योंकि स्लिप उत्पन्न होती है, उनके द्वारा निर्दिष्ट प्राथमिकताओं के आधार पर। यहां आरक्षण प्रक्रिया अनिवार्य रूप से प्रीपेड ग्राहकों के समान ही है। हालांकि, वॉक-इन आरक्षण पूरी तरह से उपलब्धता पर निर्भर करता है। यदि आप समय से पहले एक स्थान आरक्षित करते हैं, तो विशेष रूप से सीमित उपलब्धता और उच्च मांग होने पर एक स्लॉट की कीमत आपको अधिक हो सकती है।

डेटा मॉडल




इन आवश्यकताओं को ध्यान में रखते हुए, आइए आगे बढ़ते हैं और अपना डेटा मॉडल बनाते हैं। इस बार, हम तीन मुख्य वर्गों के साथ काम करेंगे:

  • पार्किंग स्थल
  • ग्राहक
  • पार्किंग आरक्षण

आइए हमारे डेटा मॉडल के इन क्षेत्रों में से प्रत्येक पर करीब से नज़र डालें।

अनुभाग 1:पार्किंग स्थल

पार्किंग लॉट सेक्शन न केवल पार्किंग के बारे में सभी महत्वपूर्ण जानकारी को कैप्चर करता है बल्कि उस तरीके को भी सरल करता है जिसमें कंपनी द्वारा पार्किंग लॉट (एक स्लॉट) की सबसे छोटी इकाई का प्रबंधन किया जा सकता है। बाद के खंडों में पार्किंग आरक्षण और संचालन को और अधिक कुशल बनाने के एकमात्र उद्देश्य के लिए कुछ टेबल कॉलम जोड़े गए हैं।

पार्किंग स्थल संरचना के अनुसार हमने परिचय में चर्चा की, हमने प्रत्येक विवरण को कैप्चर करने के लिए निम्न तालिकाएं बनाई हैं जिनकी हमें आवश्यकता होगी।

parking_lot - एक पार्किंग स्थल के बारे में बुनियादी जानकारी संग्रहीत करता है। इस तालिका के लिए कॉलम हैं:

  • id - इस तालिका के लिए प्राथमिक कुंजी। यह प्रत्येक पार्किंग स्थल को एक अद्वितीय संख्या प्रदान करता है।
  • number_of_blocks - एक पार्किंग स्थल में ब्लॉक की संख्या को ट्रैक करता है।
  • is_slot_available - यह दर्शाता है कि पार्किंग स्थल में वर्तमान में कोई स्लॉट उपलब्ध है या नहीं।
  • address - पार्किंग का पूरा पता स्टोर करता है।
  • zip - एक पार्किंग स्थल के ज़िप कोड को संग्रहीत करता है, जिससे ग्राहक अपने इच्छित ज़िप कोड को क्वेरी करके एक निश्चित क्षेत्र के भीतर उपलब्ध पार्किंग स्थल को आसानी से खोज सकते हैं।
  • is_reentry_allowed - यह दर्शाता है कि क्या ग्राहक पार्किंग स्थल से बाहर निकल सकता है और उसी पार्किंग पर्ची के साथ फिर से प्रवेश कर सकता है। ध्यान दें कि कई पार्किंग स्थल आमतौर पर ग्राहकों को ऐसा करने की अनुमति नहीं देते हैं। ऐसे पार्किंग लॉट में, आपको हर बार किसी निश्चित दिन में फिर से प्रवेश करने पर एक नई पर्ची खरीदनी होगी।
  • operating_company_name - पार्किंग का संचालन करने वाली कंपनी का नाम स्टोर करता है।
  • is_valet_parking_available - यह दर्शाता है कि पार्किंग स्थल वैलेट पार्किंग सेवाएं प्रदान करता है या नहीं।

block - एक पार्किंग स्थल को एक या अधिक ब्लॉकों में बांटा गया है। यह तालिका पार्किंग के प्रत्येक ब्लॉक के बारे में जानकारी संग्रहीत करती है। इस तालिका के लिए कॉलम हैं:- एक पार्किंग स्थल को एक या अधिक ब्लॉकों में विभाजित किया जाता है। यह तालिका पार्किंग के प्रत्येक ब्लॉक के बारे में जानकारी संग्रहीत करती है। इस तालिका के लिए कॉलम हैं:

  • id – इस तालिका के लिए प्राथमिक कुंजी।
  • parking_lot_id - parking_lot तालिका जो उस पार्किंग स्थल की पहचान करती है जिससे ब्लॉक संबंधित है।
  • block_code - इस ब्लॉक से जुड़े कोड को स्टोर करता है। ब्लॉक आमतौर पर विशिष्ट पहचान वाले कोड दिए जाते हैं, जैसे "ए", "बी", "सी", "11", "22", "33", और इसी तरह।
  • number_of_floors - इस ब्लॉक में फ्लोर की संख्या को स्टोर करता है। संख्या "1" इंगित करती है कि यह एक जमीनी स्तर का ब्लॉक है जिसमें कोई मंजिल नहीं है।
  • is_block_full - यह दर्शाता है कि वर्तमान में ब्लॉक भरा हुआ है या नहीं।

floor - मल्टी लेवल पार्किंग लॉट में ब्लॉक में एक से ज्यादा फ्लोर हो सकते हैं। हालाँकि, इस तालिका को जमीनी स्तर के ब्लॉकों द्वारा भी संदर्भित किया जा सकता है। इस तालिका के लिए कॉलम हैं:

  • id – इस तालिका के लिए प्राथमिक कुंजी।
  • block_id - उस ब्लॉक की पहचान करता है जिससे एक मंजिल संबंधित है।
  • floor_number - एक मंजिल की संख्या का प्रतिनिधित्व करता है (जहां 1 =जमीनी स्तर)।
  • max_height_in_inch - एक बहु-स्तरीय पार्किंग में, प्रत्येक मंजिल में ऊंचाई की कमी होती है। यह कॉलम एक मंजिल पर वाहनों के लिए अधिकतम अनुमेय ऊंचाई संग्रहीत करता है।
  • number_of_wings - एक मंजिल आगे पंखों में विभाजित है, जो ग्राहकों को यह याद रखने में मदद करती है कि उन्होंने कहां पार्क किया था। यह कॉलम फर्श पर मौजूद पंखों की संख्या को संग्रहीत करता है।
  • number_of_slots - एक फ्लोर पर मौजूद स्लॉट्स की संख्या को स्टोर करता है।
  • is_covered - पहचानता है कि क्या कोई फर्श ढका हुआ है। बहु-स्तरीय पार्किंग स्थल या भूतल-स्तरीय पार्किंग स्थल की ऊपरी मंजिल को कभी भी ढका नहीं जाएगा।
  • is_accessible - इंगित करता है कि क्या मंजिल आसानी से सुलभ है, खासकर विकलांगों के लिए। यदि एक बहु-स्तरीय लॉट में एक परिचालन लिफ्ट है, तो इसकी प्रत्येक मंजिल को सुलभ माना जाता है।
  • is_floor_full - इंगित करता है कि क्या कोई फर्श पूरी तरह से भरा हुआ है।
  • is_reserved_reg_cust - इंगित करता है कि क्या कोई मंजिल नियमित ग्राहकों के लिए सख्ती से आरक्षित है।

parking_slot - यह तालिका पार्किंग स्थल के पार्किंग स्लॉट के बारे में सभी जानकारी संग्रहीत करती है। इस तालिका के लिए कॉलम हैं:

  • id - इस तालिका के लिए प्राथमिक कुंजी।
  • floor_id - उस मंजिल की पहचान करता है जिससे एक स्लॉट संबंधित है।
  • slot_number - स्लॉट के विशिष्ट पहचानकर्ता को एक विशेष मंजिल पर संग्रहीत करता है।
  • wing_code - उस विंग की पहचान करता है जिसमें स्लॉट स्थित है।

अनुभाग 2:ग्राहक

आगे बढ़ते हुए, हम अब ग्राहकों के बारे में सभी प्रासंगिक जानकारी का विवरण देना शुरू करेंगे। ध्यान दें कि पार्किंग स्थल व्यक्तिगत जानकारी जैसे नाम, पते आदि को कैप्चर करने और संग्रहीत करने से संबंधित नहीं हैं, क्योंकि वे जरूरत पड़ने पर ऐसी जानकारी प्राप्त करने के लिए किसी भी समय अपने स्थानीय डीएमवी पोर्टल तक पहुंच सकते हैं।

customer - सभी प्रकार के ग्राहकों के बारे में सभी प्रासंगिक विवरण संग्रहीत करता है जो पार्किंग स्थल पर जा सकते हैं (नियमित, एक बार और प्रीपेड)। इस तालिका के लिए कॉलम हैं:

  • id - ग्राहक के लिए विशिष्ट पहचानकर्ता।
  • vehicle_number - ग्राहक के वाहन का लाइसेंस प्लेट नंबर स्टोर करता है।
  • registration_date - उस तारीख को स्टोर करता है जब वाहन को पहली बार पार्किंग स्थल के साथ पंजीकृत किया गया था।
  • is_regular_customer - इंगित करता है कि ग्राहक के पास नियमित पास है या नहीं। यदि कॉलम सत्य का मान संग्रहीत करता है, तो regular_pass टेबल। एक बार पास की समय सीमा समाप्त हो जाने और ग्राहक ने अभी तक इसे नवीनीकृत नहीं किया है, तो इस कॉलम में मान को गलत में अपडेट कर दिया जाता है।
  • contact_number - ग्राहक के संपर्क नंबर को स्टोर करता है। चूंकि कुछ लोग पार्किंग स्थल के साथ अपने संपर्क नंबर साझा करने से हिचकते हैं, इसलिए हमने इस कॉलम को शून्य कर दिया है।

regular_pass - ग्राहकों को जारी किए जाने वाले नियमित पास के बारे में जानकारी संग्रहीत करता है। इस तालिका के लिए कॉलम हैं:

  • id - इस तालिका के लिए प्राथमिक कुंजी।
  • customer_id - ग्राहक तालिका से संदर्भित कॉलम।
  • purchase_date - उस तारीख को स्टोर करता है जिस दिन पास खरीदा गया था।
  • start_date - उस तारीख को स्टोर करता है जिस दिन पास को वैध माना जाएगा, जो जरूरी नहीं कि खरीद की तारीख हो, क्योंकि कुछ ग्राहक पहले से पास खरीदते हैं।
  • duration_in_days - उन दिनों की संख्या को संग्रहीत करता है जिनके लिए पास वैध है। मासिक पास आमतौर पर 30 दिनों के लिए वैध रहता है।
  • cost - लागत को स्थानीय मुद्रा में संग्रहीत करता है, जिसे ग्राहक को पास खरीदने के लिए भुगतान करना होगा।

धारा 3:आरक्षण

हमारा अंतिम खंड पार्किंग स्लॉट आरक्षण प्रक्रिया का विवरण देने के लिए समर्पित है। आरक्षण करते समय, एक ग्राहक को आम तौर पर कुछ विवरण प्रदान करने चाहिए, जैसे कि उनकी अपेक्षित तिथि और आगमन का समय, वह कितने समय के लिए स्लॉट आरक्षित करना चाहते हैं, और इसी तरह। हम नीचे इस खंड की दो मुख्य तालिकाओं पर चर्चा करते हैं।

parking_slot_reservation - आरक्षण विवरण रखता है। इस तालिका के लिए कॉलम हैं:

  • id - व्यक्तिगत आरक्षण अनुरोध के लिए एक अद्वितीय संदर्भ संख्या निर्दिष्ट करता है।
  • customer_id - उस ग्राहक के पहचानकर्ता का संदर्भ जो यह आरक्षण कर रहा है।
  • start_timestamp - ग्राहक के आने की अपेक्षित तिथि और समय को स्टोर करता है।
  • duration_in_minutes - उस अवधि को संग्रहीत करता है जिसके लिए आरक्षण किया गया था।
  • booking_date - उस तारीख को स्टोर करता है जिस दिन आरक्षण किया गया था।
  • parking_slot_id - आंतरिक कॉलम जो ग्राहक के अनुरोध पर कब्जा करने और भुगतान किए जाने के बाद एक पार्किंग स्लॉट प्रदान करता है।

parking_slip - ग्राहक के प्रवेश और निकास समय के साथ-साथ किसी भी प्रासंगिक शुल्क के बारे में जानकारी संग्रहीत करता है। हमने इस तालिका को पार्किंग स्थल के लिए बनाया है जो एक ही आरक्षण के तहत कई प्रविष्टियों और निकास की अनुमति देता है। इस तालिका के लिए कॉलम हैं:

  • id – इस तालिका के लिए प्राथमिक कुंजी।
  • parking_slot_reservation_id - संदर्भित कॉलम जो संबंधित आरक्षण अनुरोध की पहचान करता है।
  • actual_entry_time - ग्राहक के आगमन की तारीख और टाइमस्टैम्प को स्टोर करता है।
  • actual_exit_time - ग्राहक के प्रस्थान (निकास) की तारीख और टाइमस्टैम्प को स्टोर करता है।
  • basic_cost - आरक्षण की मूल लागत संग्रहीत करता है।
  • penalty - डिफ़ॉल्ट रूप से 0 का मान संग्रहीत करता है। अगर कोई ग्राहक बाहर निकलने में देरी करता है, तो जुर्माना शुल्क लगाया जाएगा, और इस कॉलम में मूल्य अपडेट किया जाएगा।
  • total_cost - यह कॉलम केवल basic_cost . के मान जोड़ता है और पेनल्टी कॉलम।
  • is_paid - आमतौर पर फिर से प्रवेश की अनुमति केवल तभी दी जाती है जब ग्राहक ने अपने पार्किंग शुल्क का भुगतान किया हो। यह कॉलम दर्शाता है कि क्या यह भुगतान किया गया है।

निष्कर्ष

इस लेख में, हमने पार्किंग स्थल प्रबंधन प्रणाली के लिए डेटा मॉडल का एक सिंहावलोकन प्रस्तुत किया है। ऐसे कई ऐप हैं जो उपयोगकर्ताओं को एक निर्दिष्ट क्षेत्र में पार्किंग स्थल के लिए डेटा निकालने, संसाधित करने और डेटा (जैसे उपलब्धता और लागत) संकलित करके पार्किंग स्थान खोजने में मदद करते हैं। यह उन लोगों के लिए विशेष रूप से उपयोगी है जो न्यूयॉर्क, लॉस एंजिल्स जैसे बड़े शहरों में जाते हैं, और अन्य जहां पार्किंग स्थल ढूंढना एक बुरा सपना हो सकता है यदि आप अपनी यात्रा की सावधानीपूर्वक योजना नहीं बनाते हैं। इस तरह के एप्लिकेशन इस जानकारी को पुनः प्राप्त करने के लिए अच्छी तरह से डिज़ाइन किए गए डेटा मॉडल और डेटाबेस एपीआई पर भरोसा करते हैं।

अपने अगले लेख में, हम अपने मौजूदा डेटा मॉडल को रीयल-टाइम पार्किंग उपलब्धता सिस्टम के समाधान में बदल देंगे। नीचे टिप्पणी अनुभाग में अपने विचार, प्रतिक्रिया और सिफारिशें पोस्ट करने के लिए स्वतंत्र महसूस करें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओवरलैपिंग प्रश्नों का अनुकूलन भाग 1:परिचय और उन्नत टी-एसक्यूएल समाधान

  2. जावा में अनुक्रमिक बनाम समानांतर धाराएँ क्या हैं?

  3. कौवा का पैर संकेतन

  4. शुरुआती के लिए एसक्यूएल कम या उसके बराबर (=) ऑपरेटर

  5. सरल शब्दों में DATEADD, DATEDIFF और DATEPART T-SQL फ़ंक्शंस का उपयोग करना