Many to Many রিলেশন কি?
ডেটাবেজে সবচেয়ে গুরুত্বপূর্ণ ও কিছুটা জটিল সম্পর্ক হলো Many-to-Many। এখানে এক টেবিলের একটি রেকর্ড অন্য টেবিলের অনেক রেকর্ডের সাথে যুক্ত থাকে। আবার দ্বিতীয় টেবিলের একটি রেকর্ডও প্রথম টেবিলের অনেক রেকর্ডের সাথে যুক্ত থাকে।
আমাদের কলেজ ডেটাবেজে student আর subject টেবিল দিয়ে এটি বোঝা যায়। একজন শিক্ষার্থী অনেক বিষয় পড়ে। আবার একটি বিষয় অনেক শিক্ষার্থী পড়ে। এই সম্পর্ক সংরক্ষণ করার জন্য মাঝখানে একটি অতিরিক্ত টেবিল লাগে, যাকে ব্রিজ টেবিল বলা হয়। আমাদের ক্ষেত্রে result টেবিলই সেই ব্রিজ টেবিল।
| roll | name | group_name |
|---|---|---|
| 1 | Rudra | Science |
| 2 | Habib | Commerce |
| 3 | Pappu | Arts |
| 4 | Anik | Science |
| 5 | Priya | Commerce |
| roll | subject_code | marks |
|---|---|---|
| 1 | 275 | 88 |
| 1 | 174 | 82 |
| 1 | 101 | 76 |
| 2 | 275 | 78 |
| 2 | 253 | 75 |
| 2 | 109 | 72 |
| 3 | 275 | 29 |
| 3 | 304 | 65 |
| 3 | 101 | 60 |
| 4 | 275 | 31 |
| 4 | 174 | 90 |
| 4 | 101 | 70 |
| 5 | 275 | 65 |
| 5 | 253 | 84 |
| 5 | 109 | 80 |
| subject_code | subject_name | group |
|---|---|---|
| 101 | Bangla | Common |
| 275 | ICT | Common |
| 174 | Physics | Science |
| 253 | Accounting | Commerce |
| 109 | Economics | Commerce |
| 304 | History | Arts |
ব্যাখ্যাঃ
উপরের ছবিতে মাঝখানের result টেবিল দুই দিকের সাথে যুক্ত। প্রতিটি রো এর বাম পাশে একজন শিক্ষার্থীর সাথে এবং ডান পাশে একটি বিষয়ের সাথে রেখা রয়েছে। Rudra তিনটি বিষয় পড়েছে, তাই তার তিনটি রেখা আছে। আবার ICT বিষয়টি পাঁচজন শিক্ষার্থী পড়েছে, তাই ICT এর সাথে পাঁচটি রেখা যুক্ত হয়েছে। দুই পাশেই অনেক রেকর্ড যুক্ত থাকায় এটিকে Many-to-Many সম্পর্ক বলা হয়। result টেবিল ছাড়া এই সম্পর্ক সংরক্ষণ করা সম্ভব নয়।
কখন ব্যবহার করবঃ
- যখন দুই পাশের রেকর্ডই একে অপরের অনেক রেকর্ডের সাথে যুক্ত থাকে।
- যখন সরাসরি দুইটি টেবিল দিয়ে সম্পর্ক রাখা সম্ভব হয় না।
- যখন সম্পর্কের অতিরিক্ত তথ্য রাখতে হয়, যেমন নম্বর, তারিখ বা স্ট্যাটাস।
- তখন একটি ব্রিজ টেবিল তৈরি করে দুইটি ফরেন কী দিয়ে সম্পর্ক স্থাপন করা হয়।
আরো কিছু উদাহরণঃ
- একজন শিক্ষার্থী অনেক ক্লাবে যোগ দেয়, আবার একটি ক্লাবে অনেক শিক্ষার্থী থাকে।
- একজন লেখক অনেক বই লেখেন, আবার একটি বই অনেক লেখক মিলে লিখতে পারেন।
- একজন ডাক্তার অনেক রোগী দেখেন, আবার একজন রোগী অনেক ডাক্তার দেখাতে পারেন।
- একটি সিনেমায় অনেক অভিনেতা থাকেন, আবার একজন অভিনেতা অনেক সিনেমায় অভিনয় করেন।
