আমাকে অ্যাকাউন্টে সংগ্রহ করার জন্য প্রতিদিনের ব্যয় ট্র্যাক করে এমন কিছু তৈরি করতে বলা হয়েছে এবং আমি এটি ডেটাবেস টেবিল স্কিমা বের করার চেষ্টা করছি যা এটি সমর্থন করবে।
আমি যা জানি তা এখানে
- সংস্থার 2.5 মিলিয়নেরও বেশি অ্যাকাউন্ট রয়েছে
- এর মধ্যে বর্তমানে তারা প্রতি মাসে গড়ে 200,000 কাজ করে (যা কর্মীদের স্তরের সাথে পরিবর্তিত হয়, যা বর্তমানে কম)
- তাদের 13 টি বিভিন্ন ধরণের দামের ট্র্যাক রয়েছে যা তারা ট্র্যাক করতে চায় এবং তারা সতর্ক করেছে যে তারা ভবিষ্যতে আরও যুক্ত করতে পারে
- তারা চায় যে প্রতিদিন ব্যয়গুলি ট্র্যাক করা হোক
- ব্যয় পুরো জায় জুড়ে বিভক্ত হয় না। তারা হয় প্রতি মাসে (200,000) কাজ করা অ্যাকাউন্টগুলির # টি জুড়ে বিভক্ত হয়ে পড়েছে, বা ব্যবহারকারীগণ একাউন্টের একটি গোষ্ঠীতে ব্যয় প্রয়োগ করতে অ্যাকাউন্ট শনাক্তকারীদের প্রবেশ করতে পারে, বা কোন অ্যাকাউন্টে ব্যয় প্রয়োগ করতে হবে তা কেবল তারা নির্দিষ্ট করতে পারে।
আমার প্রথম চিন্তাটি ছিল একটি সাধারণ ডাটাবেস:
অ্যাকাউন্ট আইডি তারিখ CostTypeId পরিমাণ
এটি নিয়ে আমার সমস্যাটি হচ্ছে, গণিতটি করুন। এই টেবিলটি দ্রুত বিশাল আকার ধারণ করতে চলেছে। ধরে নিলে চলতি মাসের সমস্ত কাজের জন্য সমস্ত 13 টি ধরণের প্রযোজ্য অ্যাকাউন্ট প্রয়োগ করা হবে 200k * 13 * N days in month
, যা প্রতি মাসে 75-80 মিলিয়ন রেকর্ডের কাছাকাছি বা প্রতি বছর এক বিলিয়ন রেকর্ডের কাছাকাছি।
আমার দ্বিতীয় চিন্তাটি এটিকে কিছুটা অস্বীকৃতি জানাতে হয়েছিল
অ্যাকাউন্ট আইডি তারিখ মোট খরচ CostType1 CostType2 CostType3 CostType4 CostType5 CostType6 CostType7 CostType8 CostType9 CostType10 CostType11 CostType12 CostType13
এই পদ্ধতিটি আরও অস্বীকৃত এবং এটি প্রতিমাসে (6 200k * N days in month
) বা প্রতি বছর প্রায় 72 মিলিয়ন রেকর্ড তৈরি করতে পারে । এটি প্রথম পদ্ধতির তুলনায় অনেক কম, তবে যদি ভবিষ্যতে সংস্থাটি নতুন কস্ট টাইপের বিষয়ে সিদ্ধান্ত নেয়, অন্য একটি ডাটাবেস কলাম যুক্ত করা দরকার।
দুটি পদ্ধতির মধ্যে কোনটি আপনি পছন্দ করেন? কেন? এমন আরও একটি বিকল্প আছে যা আপনি ভাবতে পারেন যে এটি আরও ভাল পরিচালনা করবে?
সংক্ষিপ্ত এবং বিশদ প্রতিবেদন উভয়ই আমি পারফরম্যান্সের প্রতিবেদন করতে আগ্রহী। অ্যাকাউন্টগুলির বাইরে ব্যয় ছড়িয়ে দেবে এমন চাকরি রাত্রে চালানো হবে যখন কেউ আশেপাশে থাকবে না। একটি গৌণ উদ্বেগ হ'ল ডাটাবেস আকার। বিদ্যমান ডাটাবেস ইতিমধ্যে প্রায় 300 গিগাবাইট, এবং আমি বিশ্বাস করি যে ডিস্কে স্থানটি 500 গিগাবাইটের কাছাকাছি।
ডাটাবেসটি এসকিউএল সার্ভার 2005