⊗pyPmDOLT 122 of 129 menu

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

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

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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა