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

MySQL के लिए सर्वोत्तम अभ्यास प्रश्न:आईडी या तिथि के अनुसार आदेश?

अगर वहाँ है एक मौका आपको एक ही तिथि के साथ दो जोड़े मिलेंगे, आपको शायद इसकी आवश्यकता होगी:

SELECT balance FROM my_table ORDER BY date_added DESC,id DESC LIMIT 1;

(दोनों क्षेत्रों पर 'अवरोही' खंड पर ध्यान दें)।

हालांकि, आपको यह ध्यान रखना होगा कि आप क्या करना चाहते हैं जब कोई 2 फरवरी की समायोजन प्रविष्टि जोड़ता है जिसे जनवरी का महीना पूरा करने के लिए 31 जनवरी की तारीख दी जाती है। इसकी आईडी 1 फरवरी को बनाई गई आईडी से बड़ी होगी।

आम तौर पर, लेखा प्रणाली सिर्फ तारीख पर काम करती है। शायद अगर आप हमें बता सकें क्यों आदेश महत्वपूर्ण है, हम अन्य सुझाव दे सकते हैं।

आपकी टिप्पणी के जवाब में:

मैं सलाह के कुछ टुकड़े प्रदान करूंगा - यह सब मैं तुरंत सोच सकता था, मैं आमतौर पर कम प्रोत्साहन के साथ और अधिक "सलाह" उगलता हूं :-) पहले दो, लेखांकन-संबंधित से अधिक डेटाबेस-संबंधित, हैं:

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

एक उदाहरण, यदि आप last_name कॉलम पर अपनी खोजों को गति देना चाहते हैं, तो आप एक अपर_लास्ट_नाम कॉलम (अनुक्रमित) बना सकते हैं, फिर इसका उपयोग अपने पहले से ही अपर-केस वाले खोज शब्द से मेल खाने वाले रिकॉर्ड का पता लगाने के लिए कर सकते हैं। यह लगभग हमेशा प्रति-पंक्ति फ़ंक्शन से तेज़ होगा upper(last_name) . आप यह सुनिश्चित करने के लिए एक सम्मिलित/अद्यतन ट्रिगर का उपयोग कर सकते हैं कि ऊपरी_लास्ट_नाम हमेशा सही ढंग से सेट किया गया है और यह केवल तभी खर्च होता है जब नाम बदलता है, हर बार जब आप खोजते हैं तो नहीं।

दूसरे, डेटा को सभी तालिकाओं (जैसे आपकी वर्तमान स्कीमा) पर भी डुप्लिकेट न करें, जब तक कि आप डेटा को चरण से बाहर नहीं होने की गारंटी देने के लिए उन्हीं ट्रिगर-प्रकार की तरकीबों का उपयोग कर सकते हैं। जब आप उन्हें एक चालान भेजते हैं तो आपका ग्राहक क्या करेगा जहां अंतिम शेष राशि प्रारंभिक शेष राशि और खरीद से मेल नहीं खाती है? यह आपकी कंपनी को बहुत ही पेशेवर दिखाने वाला नहीं है :-)

तीसरा (और यह अधिक लेखांकन से संबंधित है), आपको आम तौर पर फ्लाई पर शेष राशि की गणना करते समय लेनदेन की संख्या के बारे में चिंता करने की आवश्यकता नहीं है। ऐसा इसलिए है क्योंकि लेखा प्रणाली में आमतौर पर वर्ष के अंत में एक रोल-ओवर फ़ंक्शन होता है जो शुरुआती शेष राशि को रीसेट करता है।

इसलिए आमतौर पर आपको कभी भी एक वर्ष से अधिक मूल्य के डेटा को एक बार में संसाधित नहीं करना पड़ता है, जब तक कि आप अमेरिकी सरकार या Microsoft नहीं हैं, तब तक यह उतना कठिन नहीं है।



  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 डेटाबेस के लिए सही दिनांक समय प्रारूप क्या है?

  2. परियोजना विकास के दौरान 5 MySql उपयोगी प्रश्न

  3. अक्षर ي और और फारसी में अंतर - Mysql

  4. एसक्यूएल:प्रतिच्छेदन के साथ सिंटेक्स त्रुटि?

  5. इस MySQL कथन में क्या गलत है:DECLARE @ID INT