আমার কাছে পণ্যগুলির একটি তালিকা রয়েছে। তাদের প্রত্যেককে এন সরবরাহকারী সরবরাহ করে।
প্রতিটি সরবরাহকারী আমাদের একটি নির্দিষ্ট তারিখের জন্য মূল্য উদ্ধৃত করে। যতক্ষণ না সেই সরবরাহকারী নতুন দাম নির্ধারণের সিদ্ধান্ত নেয় ততক্ষণ পর্যন্ত দামটি কার্যকর থাকে। সেক্ষেত্রে সরবরাহকারী নতুন তারিখ সহ নতুন দাম দেবেন।
মাইএসকিউএল টেবিল শিরোনামটি বর্তমানে দেখতে এমন দেখাচ্ছে:
provider_id, product_id, price, date_price_effective
প্রতিটি অন্যান্য দিন, আমরা বর্তমান দিনের জন্য কার্যকর যে পণ্য / দামের একটি তালিকা সংকলন করি। প্রতিটি পণ্যের জন্য, তালিকায় সেই নির্দিষ্ট পণ্য রয়েছে এমন সরবরাহকারীদের বাছাই করা তালিকা রয়েছে। এইভাবে, যে কেউ সেরা দামের প্রস্তাব দেয় আমরা তার কাছ থেকে আমরা নির্দিষ্ট পণ্যগুলি অর্ডার করতে পারি।
কার্যকর দামগুলি পেতে, আমার কাছে একটি এসকিউএল বিবৃতি রয়েছে যা সমস্ত সারি প্রদান করে date_price_effective >= NOW()
। এই ফলাফল সেটটি একটি রুবি স্ক্রিপ্টের সাথে প্রক্রিয়া করা হয় যা এই জাতীয় দেখতে একটি ফাইল পাওয়ার জন্য বাছাই এবং ফিল্টারিং প্রয়োজনীয় করে:
product_id_1,provider_1,provider_3,provider8,provider_10...
product_id_2,provider_3,provider_2,provider1,provider_10...
এটি আমাদের উদ্দেশ্যগুলির জন্য সূক্ষ্মভাবে কাজ করে, তবে আমার এখনও একটি চুলকানি রয়েছে যে কোনও এসকিউএল টেবিল সম্ভবত এই জাতীয় তথ্য সঞ্চয় করার সর্বোত্তম উপায় নয়। আমার এই অনুভূতি আছে যে এই ধরণের সমস্যাটি আগে আরো আরও সৃজনশীল উপায়ে সমাধান করা হয়েছে।
এসকিউএল ব্যতীত এই তথ্য সংরক্ষণের আরও ভাল উপায় কি নেই? বা, এসকিউএল ব্যবহার করা হয়, আমি ব্যবহার করছি এর চেয়ে ভাল পদ্ধতির আছে?