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

आवर्ती घटना वाले डेटाबेस के लिए इष्टतम डिजाइन

मैं घटना के प्रत्येक पुनरावृत्ति के लिए कुछ क्षितिज से बाहर एक प्रविष्टि बनाउंगा। हालांकि, इसका मतलब है कि आपको एक और तालिका की आवश्यकता होगी जिसका उपयोग आप तिथियों को प्रोजेक्ट करने के लिए कर सकते हैं यदि वे आपकी क्षितिज तिथि से पहले स्कैन करते हैं। यानी, आपको एक ऐसी घटना तालिका की आवश्यकता होगी जिसमें दोहराई गई घटना (1 जनवरी, 8 जनवरी, 15 जनवरी, ... दिनांक:1 जनवरी; दोहराएँ:7; से:2011) ताकि 2012 की शुरुआत में (या जैसे ही उपयोगकर्ता 2012+ महीने के दृश्य का अनुरोध करता है) आप भविष्य की घटनाओं को उत्पन्न कर सकते हैं।

इसके दो बड़े नुकसान हैं:

  1. आपके डेटाबेस में पूरे एक साल का डेटा है। हालांकि, अगर पूरे एक साल का डेटा जोड़ने से आपका प्रदर्शन खराब होता है, तो संभवतः आपका सिस्टम कमज़ोर है। (ऐसा लगता है कि एक कैलेंडर ऐप कई वर्षों की तारीखों को संभालने में सक्षम हो)
  2. इवेंट क्षितिज के अंत में, आपको पुनरावर्ती ईवेंट के लिए भविष्य की तिथियां जेनरेट करनी होंगी।

फायदे (आईएमओ) जो नुकसान से अधिक हैं:

  1. कैलेंडर प्रदर्शित करते समय आसान गणित। ऊपर टिम की विधि का उपयोग करते हुए, यदि उपयोगकर्ता 18 दिसंबर, 2011 को लोड करता है, तो आप कैसे गणना करेंगे कि उस दिन कौन सी आवर्ती घटनाएं रखी जानी चाहिए? हर बार जब आप कोई तिथि प्रदर्शित करते हैं तो आपको प्रत्येक पुनरावर्ती ईवेंट के माध्यम से लूप करने के लिए मजबूर किया जाएगा। ट्रेडऑफ़ नुकसान #1 है, जो मुझे लगता है कि इन गणनाओं को फिर से करने के लिए बेहतर समाधान है।
  2. आप किसी ईवेंट के विशिष्ट उदाहरणों को संपादित कर सकते हैं। टिम की पद्धति का उपयोग करते हुए, यदि छुट्टी के दिन कोई बैठक हुई और उपयोगकर्ता ने इसे पिछले दिन में बदल दिया, तो आप इसे कैसे करेंगे? यहां वर्णित एक-प्रविष्टि-प्रति-ईवेंट पद्धति का उपयोग करके, आप कैलेंडर में आसानी से एकल घटनाओं को इधर-उधर घुमाते हुए, ईवेंट के लिए उस रिकॉर्ड को संशोधित कर सकते हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel 3 में उपयोगकर्ता द्वारा परिभाषित MySQL चर?

  2. ग्रुप बाय क्लॉज में एक चुनिंदा अभिव्यक्ति के परिणाम का पुन:उपयोग करें?

  3. सोलर इंडेक्सिंग माई एसक्यूएल टाइमस्टैम्प या डेट टाइम फील्ड

  4. क्या SET CHARACTER SET utf8 आवश्यक है?

  5. उपयोगकर्ता द्वारा की गई खोज के आधार पर खोज मानदंड रिकॉर्ड की गणना करें (MYSQL PHP)