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

डेटाबेस डिजाइन:खाता शेष की गणना

एक सदियों पुरानी समस्या जिसे कभी भी सुरुचिपूर्ण ढंग से हल नहीं किया गया है।

मैंने जिन सभी बैंकिंग पैकेजों के साथ काम किया है, वे शेष राशि को खाता इकाई के साथ संग्रहीत करते हैं। आंदोलन के इतिहास से मक्खी पर इसकी गणना करना अकल्पनीय है।

सही तरीका है:

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

कुछ प्रणालियाँ सभी गतिविधियों को धनात्मक संख्याओं के रूप में संग्रहीत करती हैं, और क्रेडिट/डेबिट को फ़ील्ड से/फ़ील्ड में या फ़्लैग के साथ बदल कर व्यक्त करती हैं। व्यक्तिगत रूप से, मुझे एक क्रेडिट फ़ील्ड, एक डेबिट फ़ील्ड और एक हस्ताक्षरित राशि पसंद है, इससे रिवर्सल का पालन करना बहुत आसान हो जाता है।

ध्यान दें कि ये तरीके नकद और प्रतिभूतियों दोनों पर लागू होते हैं।

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL में सबस्ट्रिंग कमांड:एक प्राइमर

  2. कैसे ठीक करें "अमान्य वस्तु का नाम 'OPENJSON'।" SQL सर्वर में

  3. मौजूदा तालिका से तालिका (संरचना) बनाएं

  4. संग्रहित प्रक्रिया - आउटपुट पैरामीटर या स्केलर के रूप में पहचान लौटाएं

  5. उन सभी तालिकाओं को छोड़ दें जिनके नाम एक निश्चित स्ट्रिंग से शुरू होते हैं