⊗pyPmDOLT 122 of 129 menu

Python да базаларда jадвалларни боглаш

Фароз қилайлик, бизда фойдаланувчиларнинг исмлари ва улар яшайдиган шахарлар билан jадвал бор:

users
id name city
1 user1 city1
2 user2 city1
3 user3 city2
4 user4 city1
5 user5 city3
6 user6 city2

Бу jадвалнинг камчилиги шундаки, бир хил шахар турли фойдаланувчилар учун бир неча бор такрорланади. Бу ўзи билан бир қанча муаммоларни олиб келади.

Бирinchidan, доимий такрорланиш маълумотлар базасининг жой соҳасини ancha кўпроқ эгаллашига олиб келади.

Иккинчидан, шахарлар билан амалиётларни бажариш жудa қийин. Мисол учун, биз экранга барча шахарлар руйхатини чиқармоқчимиз. Буни оддий йўл билан бажариб бўлмайди. Бизга барча фойдаланувчиларни уларнинг шахарлари билан бирга олиш, сўнг olingan шахарлардан дубликатларни ўчириш керак бўлади ва шундан кейингина биз бу рўйхатни оламиз.

Энди tasavvur qiling, базада 10000 фойдаланувчи 10 та шахардан - бу 10 шахар учун биз уларни кўп миқдордаги сатрлардан иборат бутун jадвалдан олишга мажбур бўламиз - натижада жуда секин ишлайдиган ва ресурсларни бемаъно сарфловчи амалиёт бўлади.

Муаммони ҳал этиш

Бизнинг jадвалимизни иккига бўлиш керак: биринчисида шахарлар сақланади, иккинчисида эса фойдаланувчилар. Бу ҳолда фойдаланувчилар jадвалида city_id устуни бўлади, у фойдаланувчининг шахрига урнайди.

Шундай қилиб, иккита jадвал ясаймиз. Шахарлар jадвали:

cities
id name
1 city1
2 city2
3 city3

Фойдаланувчилар jадвали:

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

Амалий вазифалар

Фароз қилайлик, сиз товарлар (номи, нархи, миқдори) ва ушбу товарларнинг категорияларини сақлашингиз керак. Сақлаш тузилмасини ёзиб чиқинг.

Фароз қилайлик, сиз дарёлар ва улар қуйиладиган денгизларни сақлашингиз керак. Сақлаш тузилмасини ёзиб чиқинг.

Фароз қилайлик, сиз шахарлар ва улар jойлашган мамлакатларни сақлашингиз керак. Сақлаш тузилмасини ёзиб чиқинг.

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