ডেটাবেজে সবচেয়ে গুরুত্বপূর্ণ ও কিছুটা জটিল সম্পর্ক হলো 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 টেবিল ছাড়া এই সম্পর্ক সংরক্ষণ করা সম্ভব নয়।