⊗pyPmDOLT 122 of 129 menu

Повезивање табела у базама података у Пајтону

Претпоставимо да имамо табелу са именима корисника и градовима у којима живе:

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ščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј