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

होटल आरक्षण प्रणाली के लिए मूल्य नियम डेटाबेस डिजाइन

मैंने वास्तव में एक होटल आरक्षण प्रणाली को डिजाइन और कार्यान्वित करने पर काम किया है और अपने अनुभव के आधार पर निम्नलिखित सलाह दे सकता हूं।

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

इसके अलावा जानकारी के अन्य महत्वपूर्ण अंश भी हैं जिन्हें संग्रहीत करने की आवश्यकता होगी जो किसी दिए गए दिन के लिए विशिष्ट हैं:

  1. आपको होटल की उपलब्धता का प्रबंधन करना होगा, अर्थात दिनांक x . को वहाँ हैं y कमरे उपलब्ध। यह लगभग निश्चित रूप से दिन-ब-दिन बदलता रहेगा।
  2. कुछ होटलों में ब्लैकआउट अवधि होती है जहां होटल थोड़े समय (आमतौर पर विशिष्ट दिन) के लिए अनुपलब्ध होता है।
  3. लीड टाइम - कुछ होटल केवल कुछ निश्चित दिनों पहले ही कमरे बुक करने की अनुमति देते हैं, यह सप्ताह के दिनों और सप्ताहांत के बीच भिन्न हो सकता है।
  4. न्यूनतम रातें, फिर से व्यक्तिगत तिथि द्वारा संग्रहीत डेटा जो कहता है कि यदि आप इस दिन आते हैं तो आपको x रहना होगा रातों की संख्या (सप्ताहांत में कहें)

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

मुझे एहसास है कि इस दृष्टिकोण के साथ आप अधिक रिकॉर्ड स्टोर करेंगे लेकिन अच्छी तरह से अनुक्रमित तालिकाओं के साथ प्रदर्शन ठीक रहेगा और डेटा का प्रबंधन बहुत आसान होगा। आपकी टिप्पणी के आधार पर आप केवल 18000 रिकॉर्ड के क्षेत्र में बात कर रहे हैं जो कि एक बहुत ही कम मात्रा है (जिस सिस्टम पर मैंने काम किया है वह कई मिलियन है और ठीक काम करता है)।

यदि आप नहीं . करते हैं तो अतिरिक्त डेटा प्रबंधन को स्पष्ट करने के लिए प्रति दिन एक रिकॉर्ड स्टोर करें, कल्पना करें कि एक होटल में पूरे दिसंबर के लिए 100 अमरीकी डालर और 20 कमरे उपलब्ध हैं:

आप एक रिकॉर्ड के साथ शुरुआत करेंगे:

1-Dec to 31st Dec Rate 100 Availability 20

फिर आप 10 दिसंबर को एक कमरा बेचते हैं.

आपके व्यावसायिक तर्क को अब ऊपर वाले से तीन रिकॉर्ड बनाने होंगे:

1-Dec to 9th Dec Rate 100 Availability 20 10-Dec to 10th Dec Rate 100 Availability 19 11-Dec to 31st Dec Rate 100 Availability 20

फिर 3 और 25 दिसंबर को दर बदल कर 110 हो जाती है

आपके व्यावसायिक तर्क को अब डेटा को फिर से विभाजित करना होगा:

1-Dec to 2-Dec Rate 100 Availability 20 3-Dec to 3-Dec Rate 110 Availability 20 4-Dec to 9-Dec Rate 100 Availability 20 10-Dec to 10-Dec Rate 100 Availability 19 11-Dec to 24-Dec Rate 100 Availability 20 25-Dec to 25-Dec Rate 110 Availability 20 26-Dec to 31-Dec Rate 100 Availability 20

यह प्रति दिनांक एक रिकॉर्ड को संग्रहीत करने की तुलना में अधिक व्यावसायिक तर्क और अधिक ओवरहेड है।

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आर को MySQL से कैसे कनेक्ट करें? डेटाबेस से कनेक्ट करने में विफल:त्रुटि:प्लगइन caching_sha2_password लोड नहीं किया जा सका

  2. उन पंक्तियों का चयन करना जहाँ PHP PDO तैयार कथनों और MySQL का उपयोग करके कोई फ़ील्ड रिक्त है

  3. JSP/Servlets:मैं ज़िप फ़ाइल कैसे अपलोड करूँ, उसे अनज़िप करूँ और CSV फ़ाइल को कैसे निकालूँ?

  4. php+mysql:mysql में एक php ऐरे डालें

  5. मारियाडीबी Any_VALUE() फ़ंक्शन का समर्थन नहीं करता