⊗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
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу