পিভট টেবিল কি ও কেন?

পিভট টেবিল কি ও কেন?

·

2 min read

"পিভট টেবিল" ডাটাবেইজ ডিজাইনের ক্ষেত্রে পরিচিত একটি শব্দ। কিন্তু আমার মতো জুনিয়র লেভেলের ডেভেলপারদের কাছে এটি বুঝাটা একটু জটিল এবং কনফিউজিং। সুতরাং আমি কিভাবে পিভট টেবিল সিলেক্ট করি, সে সম্পর্কে আজ সংক্ষেপে আলোচনা করব।

বুঝার সুবিধার্থে আলচনাকে আমি দুইভাগে বিভক্ত করেছি- ১। পিভট টেবিল কি ও কেন, ২। পিভট টেবিলের মাধ্যমে ডাটা রিট্রিভ।

আমি আজ প্রথমটি নিয়ে আলোচনা করবো। অর্থাৎ পিভট টেবিল কি ও কেন।

প্রথমত আমরা কিভাবে বুঝব যে, আমাদের পিভট টেবিল প্রয়োজন আছে কিনা!!

ডাটাবেজের ওয়ান টু ওয়ান রিলেশনের ক্ষেত্রে পিভট টেবিলের প্রয়োজন নেই। কিন্তু বাকি সকল ক্ষেত্রে পিভট টেবিলের প্রয়োজন আছে। বিশেষ করে ম্যানি টু ম্যানি রিলেশনের ক্ষেত্রে অবশ্যই পিভট টেবিল প্রয়োজন। আমি আজ ম্যানি টু ম্যানি রিলেশনের পিভট টেবিল দেখাব।

ধরুন আমরা একটা কোর্স রিলেটেড ডাটাবেজ ডিজাইন করতে চাই। যেখানে একজন অথরের একাধিক কোর্স থাকতে পারে, আবার একটা কোর্সের একাধিক অথর থাকতে পারে। তাহলে চলুন দেখি ডাটাবেজের ডিজাইনটা কেমন হবে-

প্রথমে আমরাতো এতটুকু বুঝছি যে এখানে মেনি টু মেনি রিলেশন করতে হবে! এজন্য আমাদের দুইটা টেবিল নিতে হবে। একটা কোর্সের জন্য এবং অপরটা অথরের জন্য।

উভয় টেবিলের একটা করে প্রাইমারী key থাকতে হবে, যেটা দিয়ে আমরা টেবিলের যে কোন ডাটা কে এক্সেস করতে পারব। এবং এ প্রাইমারী key টা অবশ্যই ইউনিক হতে হবে। আমরা id কে প্রাইমারী key করলাম। এখন আমাদের মনে হতে পারে যে আমরা দুইটা টেবিল না নিয়ে course টেবিলের মধ্যেই অথর নামে একটা ফিল্ড অ্যাড করে দিতে পারতাম?? অথবা athor টেবিলে কোর্স নামে একটা ফিল্ড অ্যাড করে দিতে পারতাম?? এ প্রশ্নের উত্তরের আগে চলুন আমরা এই দুইটা টেবিলের json data কেমন হতে পারে সেটা দেখে নেই-

চিত্র-০২

উপরের চিত্রটি লক্ষ্য করুন। ভিন্ন ভিন্ন কোর্সের জন্য ভিন্ন ভিন্ন id একইভাবে ভিন্ন ভিন্ন অথরের জন্য ভিন্ন ভিন্ন id। এখন আমরা যদি course টেবিলের মধ্যেই অথর নামে একটা ফিল্ড অ্যাড করতাম অথবা athor টেবিলে কোর্স নামে একটা ফিল্ড অ্যাড করতাম, তাহলে কি ঘটনা ঘটতো!! চলুন দেখি-

এখন লক্ষ্য করুন। এখানে কি ঘটনা ঘটছে! একজন অথরের জন্য একটা কোর্স ডাটাবেজে স্টোর হচ্ছে। ঠিক একইভাবে একটা কোর্সের জন্য একজন অথর ডাটাবেজে স্টোর হচ্ছে। এখন ডাটাবেজ থেকে ডাটা রিট্রিভ করলে একজন অথরের একটা কোর্স এবং একটা কোর্সের একজন অথরকে দেখতে পাব। কিন্তু আমরা চাইতেছি যে, কোন একটা সিঙ্গেল কোর্সকে ভিউ করলে তার সকল অথর শো করবে এবং একজন অথোরকে ভিউ করলে তার সবগুলা কোর্স ভিউ করবে। এ সমস্যা সমাধানের জন্য একটা অতিরিক্ত টেবিল ব্যবহার করতে হয়। যার নাম পিভট টেবিল।

এখন প্রশ্ন হতে পারে পিভট টেবিল কিভাবে কাজ করে। আগামী পর্বে সে বিষয় আলোচনা করবো ইনশাআল্লাহ্‌।