আমি অ্যাকাউন্টিং সফটওয়্যার তৈরি করছি। আমার ডাবল এন্ট্রি বুককিপিং প্রয়োগ করতে হবে। আমার লেনদেন প্রতি দুটি সারি বিপরীতে এক সারির শাস্ত্রীয় সমস্যা আছে।
আসুন একটি উদাহরণ নেওয়া যাক এবং দেখুন যে এটি উভয় পরিস্থিতিতে কার্যকর করা হবে।
অ্যাকাউন্ট Cash
এবং অ্যাকাউন্ট বিবেচনা করুন Rent
। আমি যখন আমার মাসিক ভাড়া প্রদান করি, আমি আমার Cash
অ্যাকাউন্ট থেকে আমার অ্যাকাউন্টে 100 ডলার স্থানান্তর করি Rent
।
লেনদেন প্রতি এক সারি
একটি সারি সিস্টেমে, এই জাতীয় লেনদেন হিসাবে সংরক্ষণ করা হবে:
লেনদেন
tx_id | posting_date
1 | 23/05/2015
transaction_records
id | tx_id | credit_account | debit_account | amount
1 | 1 | Cash | Rent | 100.00
লেনদেন প্রতি দুটি সারি
একটি দুটি সারি সিস্টেমে, আমাকে বিপরীত রেকর্ড তৈরি করতে একই লেনদেনের রেকর্ডটি আয়না করতে হবে যা আমি উভয়কে একবার যোগ করলে আমি শূন্য ব্যালেন্স পেয়ে যাব।
লেনদেন
tx_id | posting_date
1 | 23/05/2015
transaction_records
id | tx_id | type | account | amount
1 | 1 | credit | Cash | 100.00
2 | 1 | debit | Rent | 100.00
সমস্যাটি
প্রথমত আমি লক্ষ করতে চাই: আমার উভয় transactions
এবং transaction_records
টেবিলের কারণ (এক টেবিলের পরিবর্তে) বিভক্ত লেনদেন পরিচালনা করতে সক্ষম হবেন (এমন একটি ক্ষেত্রে যেখানে আমি Cash
অ্যাকাউন্ট থেকে দুটি বা আরও বেশি অ্যাকাউন্টে $ 100 স্থানান্তর করি )।
প্রথমে আমি প্রতি লেনদেনের জন্য এক সারি দিয়ে এটি বাস্তবায়নের চেষ্টা করেছি, তবে অ্যাকাউন্টের ভারসাম্যটি গণনা করতে এবং তথ্যটি পুনরুদ্ধার করার জন্য এটি একটি ব্যথা।
আমি দ্বিতীয় দৃশ্যের দিকে ঝুঁকছি; তবে এর কিছু সমস্যা রয়েছে:
- আমি কীভাবে একটি একক রেকর্ড আপডেট করব? ধরে নিলাম আমি একটি ভুল করেছি এবং আমার ভাড়াটির জন্য $ 100 রেকর্ড করার পরিবর্তে, আমি $ 10 রেকর্ড করেছি। আমার কাছে এখন 2
transaction_records
- 10 টির জন্য ক্রেডিট এবং একটি ডেবিট হিসাবে রয়েছে। - এখন আমি আমার পুনর্মিলন করি এবং আমি এই টাইপ ঠিক করতে চাই। আমি কীভাবে এটি ডাটাবেসে ঠিক করব? আমি রেকর্ডগুলির মধ্যে সংযোগটি জানি না এবং বিভাজনের ক্ষেত্রে একটি লেনদেনে ২ টিরও বেশি রেকর্ড থাকতে পারে। আমি যে সমাধানটি নিয়ে এসেছি তা হ'ল
ref_id
প্রতিটি রেকর্ড জুটির জন্য কিছু যুক্ত করা যা সেই নির্দিষ্ট রেকর্ডটির নির্দিষ্টতার প্রসঙ্গে "রেকর্ডগুলি একে অপরের বিপরীত দিক" হিসাবে স্বতন্ত্রভাবে চিহ্নিত করবেtx_id
।
কোন পদ্ধতির ভাল / সহজ?
আমার প্রশ্নটি সহজ করার জন্য: আমি এ থেকে বি অ্যাকাউন্টে অ্যাকাউন্টে অর্থের চলন উপস্থাপন করতে চাই। দুটি পরিস্থিতিতে আমি এই জাতীয় লেনদেন সঞ্চয় করার জন্য উভয়ই বৈধ নকশা। আমি যেমনটি উল্লেখ করেছি যে তাদের উভয়ের পক্ষে মতামত রয়েছে (প্রথমটি: সংরক্ষণ করা সহজ, পুনরুদ্ধার করা শক্ত; দ্বিতীয়টি বিপরীত)।
তাদের অন্যান্য মতামত / বিধি থাকতে পারে যা আমি এই মুহুর্তে স্পষ্ট করি না, তাই আমি আরও অভিজ্ঞ ব্যক্তিদের কাছ থেকে মতামত চাই।