⊗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šuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј