⊗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 файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау