⊗pyPmDOLT 122 of 129 menu

Prepojenie tabuliek v databázach v Pythone

Predpokladajme, že máme tabuľku s menami používateľov a mestami, v ktorých žijú:

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

Nevýhodou tejto tabuľky je, že to isté mesto sa opakuje niekoľkokrát pre rôznych používateľov. To vedie k určitým problémom.

Po prvé, neustále opakovanie vedie k tomu, že databáza začína zaberať oveľa viac miesta.

Po druhé, je dosť nepohodlné vykonávať operácie s mestami. Napríklad, chceme zobraziť na obrazovke zoznam všetkých miest. Tak jednoducho to urobiť nejde. Budeme musieť získať všetkých používateľov spolu s ich mestami, potom odstrániť duplicity z získaných miest a až potom dostaneme tento zoznam.

A teraz si predstavme, že v databáze je 10000 používateľov z 10 miest - pre týchto 10 miest budeme musieť vytiahnuť celú tabuľku z obrovského množstva riadkov - dostaneme veľmi pomalú operáciu so zbytočným plytvaním zdrojov.

Riešenie problému

Je potrebné rozdeliť našu tabuľku na dve: v jednej budú uložené mestá a v druhej - používatelia. V tabuľke s používateľmi bude stĺpec city_id, ktorý bude odkazovať na mesto používateľa.

Takže, vytvorme dve tabuľky. Tabuľka s mestami:

cities
id name
1 city1
2 city2
3 city3

Tabuľka s používateľmi:

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

Praktické úlohy

Predpokladajme, že potrebujete ukladať tovar (názov, cena, množstvo) a kategórie tohto tovaru. Opíšte štruktúru ukladania.

Predpokladajme, že potrebujete ukladať rieky a moria, do ktorých tieto rieky ústia. Opíšte štruktúru ukladania.

Predpokladajme, že potrebujete ukladať mestá a krajiny, v ktorých sa nachádzajú. Opíšte štruktúru ukladania.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť