⊗ppPmDOLT 381 of 447 menu

ცხრილების დაკავშირება მონაცემთა ბაზებში

დავუშვათ, გვაქვს ცხრილი მომხმარებელთა სახელებით და იქაური ქალაქებით, სადაც ისინი ცხოვრობენ:

users
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, რომელიც მიუთითებს მომხმარებლის ქალაქზე.

მაშ, მოდით გავაკეთოთ ორი ცხრილი. ცხრილი ქალაქებით:

cities
id name
1 city1
2 city2
3 city3

ცხრილი მომხმარებლებით:

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

დავუშვათ, თქვენ გჭირდებათ საქონლის შენახვა (სახელი, ფასი, რაოდენობა) და ამ საქონლის კატეგორიები. აღწერეთ შენახვის სტრუქტურა.

დავუშვათ, თქვენ გჭირდებათ მდინარეებისა და ზღვების შენახვა, რომლებშიც ეს მდინარეები ჩაედინება. აღწერეთ შენახვის სტრუქტურა.

დავუშვათ, თქვენ გჭირდებათ ქალაქებისა და ქვეყნების შენახვა, რომლებშიც ისინი მდებარეობენ. აღწერეთ შენახვის სტრუქტურა.

ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა