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

टैप एंड पार्क:एक पार्किंग ऐप डेटा मॉडल

विभिन्न ऐप पार्किंग के लिए आपकी खोज को दर्द रहित बनाने का वादा करते हैं। आइए हमारे डेटा मॉडलिंग चश्मे का उपयोग करके इस प्रकार के ऐप की जांच करें। अंतर्निहित मॉडल कैसा दिखता है?

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

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

हमें पार्किंग स्थल और पार्किंग ऐप्स के बारे में क्या पता होना चाहिए?

पार्किंग ऐप्स बहुत सरल हैं:हम वास्तविक समय में पार्किंग रिक्त स्थान की उपलब्धता और कीमत पर नज़र रखने, उक्त स्थानों की बुकिंग और शुल्क का भुगतान करने के लिए कार्यों की अपेक्षा कर सकते हैं।

स्थान के अलावा, जिसे डेटा मॉडलर के लिए संभालना अपेक्षाकृत आसान है, पार्किंग स्थल के लिए प्रमुख ड्राइवर कीमत है। पार्किंग स्थानों के लिए मूल्य निर्धारण की रणनीति काफी सीधी है, और कुछ तरीके या नियम व्यावहारिक रूप से सार्वभौमिक हैं:

  • पार्किंग लॉट में अक्सर अलग-अलग समय के लिए अलग-अलग कीमतें होती हैं। एक दिन को आम तौर पर तीन भागों में बांटा जाता है - सुबह (6:00 से 11:00 बजे), दोपहर (सुबह 11:00 से शाम 5:00 बजे), और शाम (5:00 से 10:00 बजे)।
  • शाम और सुबह की कीमतें आमतौर पर अधिक होती हैं, क्योंकि इन घंटों के दौरान अधिक कारों को जगह की आवश्यकता हो सकती है।
  • मूल्य निर्धारण सप्ताह के दिनों के आधार पर भी भिन्न हो सकते हैं। उदाहरण के लिए, शहर के केंद्र के पास एक पार्किंग स्थल सप्ताहांत (शनिवार और रविवार) को अधिक शुल्क लेगा क्योंकि उस समय अधिक लोग आते हैं।
  • ज्यादातर समय, बहुत से लोग अपने मानक मूल्यों का उपयोग करते हैं। हालाँकि, ऐसे दिन भी होते हैं जब वे अधिक शुल्क ले सकते हैं - उदा। जब स्टेडियम में कोई खेल या कार्यक्रम होता है तो बेसबॉल स्टेडियम के पास पार्किंग स्थल अधिक शुल्क ले सकते हैं।
  • परिवहन केंद्रों (हवाई अड्डों, रेलवे स्टेशनों और बस स्टैंड) के पास पार्किंग स्थल 24 घंटे या एक सप्ताह के लिए पार्किंग की अनुमति दे सकते हैं। उनके पास लंबी अवधि की पार्किंग के लिए एक विशेष दर होने की संभावना होगी।
  • कुछ पार्किंग स्थल एक निश्चित कीमत पर मासिक पास जारी करते हैं। मासिक पास धारक दैनिक शुल्क देने के बजाय हर महीने एक निश्चित राशि का भुगतान करते हैं।

डेटा मॉडल




जैसा कि आप देख सकते हैं, तीन विषय क्षेत्र हैं:

  1. “पार्किंग स्थल”
  2. “ग्राहक”
  3. “पार्किंग आरक्षण”

आइए पहले सबसे महत्वपूर्ण विषय क्षेत्र को लें - वह जो पार्किंग स्थल और उनके मूल्य निर्धारण को संभालता है।

पार्किंग स्थल

यह विषय क्षेत्र parking_lot तालिका, जो हमारे सिस्टम में प्रत्येक पार्किंग स्थल के बारे में विवरण संग्रहीत करती है। पार्किंग स्थल प्रबंधन डेटा मॉडल के बारे में हमारे पिछले लेख में इस तालिका को अच्छी तरह से समझाया गया है। हालांकि, हम यहां कुछ महत्वपूर्ण कॉलम दोहराएंगे:

  • zip - एक डाक कोड; यह खोज कार्य में एक प्रमुख भूमिका निभाता है।
  • is_slot_available - पार्किंग लॉट ऑपरेटरों द्वारा अपडेट किया गया और यह दर्शाता है कि वर्तमान में जगह उपलब्ध है या नहीं।
  • is_reentry_allowed - क्या कोई ग्राहक लॉट को छोड़ने के बाद उसमें दोबारा पार्क कर सकता है। यदि पुन:प्रवेश की अनुमति नहीं है, तो लौटने वाले ग्राहक को एक और स्थान खरीदना होगा।
  • is_valet_parking_available - वैलेट पार्किंग में अतिरिक्त खर्च होता है, लेकिन लोग अक्सर इसे पसंद करते हैं - खासकर जब वे डेट पर हों।
  • operational_in_night - रात में पार्किंग खुली है या नहीं। यह जानकारी तब बहुत महत्वपूर्ण हो जाती है जब आपकी कार हवाईअड्डे के पास खड़ी होती है और आपकी उड़ान आधी रात को आती है!
  • minimum_hr_pay - अपनी कार को लॉट में पार्क करने के लिए न्यूनतम शुल्क। उदाहरण के लिए, कुछ लॉट में न्यूनतम तीन घंटे होते हैं, जिसका अर्थ है कि आप तीन घंटे का भुगतान करते हैं, भले ही आप केवल 30 मिनट के लिए पार्क किए गए हों।
  • is_monthly_pass_allowed -क्या बहुत सारे मासिक पास प्रदान करते हैं।

हम पहले ही उन कारकों पर चर्चा कर चुके हैं जो पार्किंग की कीमतें निर्धारित करते हैं। अब देखते हैं कि हम अपने मॉडल में मूल्य निर्धारण को कैसे संभालेंगे। हम parking_pricing नियमित कीमतों और pricing_exception किसी भी अपवाद को रिकॉर्ड करने के लिए तालिका। दोनों तालिकाओं में एक समान संरचना है, और स्तंभ स्व-व्याख्यात्मक हैं। केवल अंतर हैं:

  1. parking_pricing तालिका में एक कॉलम है (day_of_week ) जो मूल्य के लिए प्रासंगिक सप्ताह के दिन को संग्रहीत करता है। pricing_exception तालिका में calendar_date है कॉलम जिसमें वास्तविक तिथि होती है जब विशेष मूल्य लागू होता था।
  2. जब ऐप कीमतें दिखा रहा हो, तो pricing_exception तालिका parking_pricing टेबल। इसलिए यदि आज की नियमित दर $5 प्रति घंटा है, लेकिन $7 के लिए एक विशेष दर प्रभावी है, तो ऐप $7 प्रति घंटे दिखाएगा।

इस विषय क्षेत्र में अंतिम तालिका है offers . इसमें डिस्काउंट कूपन और उनके संबंधित विवरण का रिकॉर्ड है। हमने पहले के लेख में ऑफ़र, सौदों और छूट के पीछे डेटा मॉडल की व्याख्या की है। यह तालिका एक ही सिद्धांत पर आधारित है, और सभी कॉलम स्व-व्याख्यात्मक होने चाहिए।

ग्राहक

जब हम पार्किंग ऐप के बारे में सोचते हैं, तो हम आमतौर पर इन तीन तत्वों के बारे में सोचते हैं:

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

इस मॉडल में इनमें से प्रत्येक निकाय के लिए एक तालिका है। customer_id विशेषता vehicle और payment_method टेबल; यह उपयोगकर्ताओं को वाहनों और भुगतान विधियों से जोड़ता है।

पार्किंग आरक्षण

इस विषय क्षेत्र में सिर्फ दो टेबल हैं। दोनों में से, “parking_one_time_reservation” तालिका आरक्षण विवरण संग्रहीत करती है। इसके कुछ स्तंभ स्व-व्याख्यात्मक हैं; अन्य हैं:

  • start_timestamp - दिनांक और समय जब आरक्षण की अवधि शुरू होती है।
  • pay_for_min_hr - यदि आरक्षण विशिष्ट घंटों के लिए है (उदाहरण के लिए सुबह 9 बजे से दोपहर तक)। अन्यथा, इस विशेषता का एक 'Y' होगा।
  • booking_for_hr - आरक्षण के घंटों की संख्या। यह एक अशक्त क्षेत्र है; इसका मूल्य तभी होगा जब pay_for_min_hr 'एन' पर सेट है। ऊपर दिए गए उदाहरण में, इसे सुबह 9 बजे से दोपहर के बीच के तीन घंटों के लिए "3" पर सेट किया जाएगा।
  • basic_parking_cost - मूल पार्किंग लागत, स्थानीय मुद्रा में।
  • offer_code - एक कूपन कोड, यदि कोई हो, लागू होता है। चूंकि ऑफ़र कोड लागू करना वैकल्पिक है और उपलब्धता के अधीन है, इसलिए यह कॉलम अशक्त है।
  • net_cost - ग्राहकों द्वारा चेकआउट के समय भुगतान की जाने वाली वास्तविक राशि (जब वे लॉट छोड़ देते हैं)।
  • is_paid - क्या पार्किंग शुल्क का भुगतान किया गया है। यह एक महत्वपूर्ण कॉलम बन जाता है जब उसी पार्किंग पर्ची पर पुनः प्रवेश की अनुमति दी जाती है। ऐसे मामलों में, भुगतान आमतौर पर पहले चेकआउट पर तय किए जाते हैं (अर्थात जब कार पहली बार लॉट छोड़ती है)।

parking_monthly_pass तालिका इस एप्लिकेशन के माध्यम से ग्राहकों को जारी किए गए सभी मासिक पासों की जानकारी दर्ज करती है। मासिक पास किसी भी समय, यहां तक ​​कि भविष्य की तिथियों के लिए भी खरीदे जा सकते हैं। तो हमारे पास दो अलग-अलग कॉलम हैं, purchase_date और start_date , जो ऐप उपयोगकर्ताओं को भविष्य में मान्य पास खरीदने में सक्षम बनाता है। अन्य कॉलम स्व-व्याख्यात्मक हैं।

पार्किंग ऐप डेटा मॉडल में हम और क्या जोड़ सकते हैं?

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

पूरी तरह से सुसज्जित पार्किंग स्थल का समर्थन करने के लिए इस डेटा मॉडल को किन अतिरिक्त परिवर्तनों की आवश्यकता है? कृपया अपने विचार हमें कमेंट सेक्शन में बताएं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. .NET . में कार्यक्रम और सूत्र

  2. आपके टूलबॉक्स से हटाने के लिए बहिष्कृत सुविधाएँ - भाग 3

  3. आईआरआई-विंडोक्स टेस्ट डेटाबेस रिपोजिटरी

  4. SQL डिज़ाइन और प्रश्नों को आज़माने के लिए ऑनलाइन उपकरण

  5. RazorSQL को Salesforce.com से कनेक्ट करना