ডাটাবেসে টেবিল লিঙ্ক করা
ধরুন আমাদের কাছে ব্যবহারকারীর নাম এবং তারা যে শহরে বাস করে সেই শহরের নাম সহ একটি টেবিল আছে:
| id | name | city |
|---|---|---|
| 1 | user1 | city1 |
| 2 | user2 | city1 |
| 3 | user3 | city2 |
| 4 | user4 | city1 |
| 5 | user5 | city3 |
| 6 | user6 | city2 |
এই টেবিলের অসুবিধা হল একই শহর বিভিন্ন ব্যবহারকারীর জন্য কয়েকবার পুনরাবৃত্তি হয়। এটি কিছু সমস্যার সৃষ্টি করে।
প্রথমত, ক্রমাগত পুনরাবৃত্তির কারণে ডাটাবেস অনেক বেশি জায়গা দখল করতে শুরু করে।
দ্বিতীয়ত, শহর নিয়ে অপারেশন করা মোটামুটি অসুবিধাজনক। উদাহরণস্বরূপ, আমরা সকল শহরের তালিকা স্ক্রিনে দেখাতে চাই। এটা সহজে করা সম্ভব হবে না। আমাদেরকে তাদের শহর সহ সমস্ত ব্যবহারকারী পেতে হবে, তারপর প্রাপ্ত শহরগুলি থেকে ডুপ্লিকেট সরাতে হবে এবং কেবল তখনই আমরা এই তালিকাটি পাব।
এবং এখন কল্পনা করুন যে ডাটাবেসে 10000
ব্যবহারকারী আছে 10 টি শহর থেকে - এই 10
শহরের জন্য আমাদেরকে সমগ্র টেবিলটি
অসংখ্য সারি থেকে বের করে নিতে হবে - এটি হবে
একটি খুব ধীর অপারেশন যেখানে সম্পদ নষ্ট করা অর্থহীন।
সমস্যার সমাধান
আমাদের টেবিলটিকে দুটিতে ভাগ করতে হবে: একটিতে
শহর সংরক্ষণ করা হবে, এবং দ্বিতীয়টিতে - ব্যবহারকারী।
এক্ষেত্রে ব্যবহারকারীদের টেবিলে একটি কলাম থাকবে
city_id, যা ব্যবহারকারীর শহরের উপর রেফার
করবে।
তো, আসুন দুটি টেবিল তৈরি করি। শহরের টেবিল:
| id | name |
|---|---|
| 1 | city1 |
| 2 | city2 |
| 3 | city3 |
ব্যবহারকারীদের টেবিল:
| id | name | city_id |
|---|---|---|
| 1 | user1 | 1 |
| 2 | user2 | 1 |
| 3 | user3 | 2 |
| 4 | user4 | 1 |
| 5 | user5 | 3 |
| 6 | user6 | 2 |
ধরুন আপনাকে পণ্য (নাম, দাম, পরিমাণ) এবং এই পণ্যগুলির বিভাগ সংরক্ষণ করতে হবে। সংরক্ষণের গঠনটি লিখুন।
ধরুন আপনাকে নদী এবং সাগর সংরক্ষণ করতে হবে, যেখানে এই নদীগুলি পড়েছে। সংরক্ষণের গঠনটি লিখুন।
ধরুন আপনাকে শহর এবং দেশ সংরক্ষণ করতে হবে, যেখানে তারা অবস্থিত। সংরক্ষণের গঠনটি লিখুন।