⊗ppPmDOLT 381 of 447 menu

Prepojenie tabuliek v databázach

Majme 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 zo 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 s obrovským množstvom riadkov - dopadlo by to veľmi pomalou operáciou so zbytočnou spotrebou 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. Pričom 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

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

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

Predpokladajme, že potrebujete ukladať mestá a krajiny, v ktorých sa nachádzajú. Popíš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ť