සම්බන්ධිත වගු දාමය

දැන් භාවිතා කරන්නන් නිශ්චිත නගරවල ජීවත් වන අතර, මෙම නගර විවිධ රටවල පිහිටා ඇතැයි සිතමු. එවැනි අවස්ථාවකදී ගබඩා කිරීම සඳහා අපට වගු තුනක් අවශ්‍ය වනු ඇත: භාවිතා කරන්නන් නගර සමඟ සම්බන්ධ වනු ඇත, නගර - රටවල් සමඟ. මෙම අවස්ථාවේදී අපට භාවිතා කරන්නන් රටවල් සමඟ සම්බන්ධ කිරීම සඳහා ක්ෂේත්‍රයක් අවශ්‍ය නොවේ - භාවිතා කරන්නන් නගර සහ රටවල් අතර සම්බන්ධය හරහා රටවල් සමඟ ඇති සම්බන්ධතාවය නිසා.

අපගේ වගු දෙස බලමු. රටවල් සමඟ වගුව:

countries
id name
1 country1
2 country2

නගර සමඟ වගුව:

cities
id name country_id
1 city1 1
2 city2 1
3 city3 2

භාවිතා කරන්නන් සමඟ වගුව නොවෙනස්ව පවතිනු ඇත:

users
id name city_id
1 user1 1
2 user2 1
3 user3 2
4 user4 1
5 user5 3
6 user6 2

විමසුම්

භාවිතා කරන්නන් ඔවුන්ගේ නගර සහ රටවල් සමඟ ලබා ගැනීම සඳහා, අපට ද්විත්ව සම්බන්ධකයන් (joins) කිරීමට සිදුවනු ඇත: පළමුවැන්න භාවිතා කරන්නන්ට නගර සම්බන්ධ කරන අතර, දෙවැන්න - නගරවලට රටවල් සම්බන්ධ කරයි:

sqlSELECT 
  users.name,
  cities.name as city_name,
  countries.name as country_name
FROM 
  users
LEFT JOIN cities ON cities.id=users.city_id
LEFT JOIN countries ON countries.id=cities.country_id

ප්‍රායෝගික කාර්යයන්

Задание 1

භාණ්ඩ නිශ්චිත උපප්‍රවර්ගයකට අයත් වන අතර, උපප්‍රවර්ග නිශ්චිත ප්‍රවර්ගයකට අයත් වේ යැයි සිතමු. ගබඩා ව්‍යුහය විස්තර කරන්න.

Задание 2

භාණ්ඩ, ඒවායේ උපප්‍රවර්ග සහ ප්‍රවර්ග සමඟ ලබා ගන්නා විමසුමක් ලියන්න.

Задание 3

උපප්‍රවර්ග ඒවායේ ප්‍රවර්ග සමඟ ලබා ගන්නා විමසුමක් ලියන්න.