⊗ppPmDOLT 381 of 447 menu

Propojování tabulek v databázích

Předpokládejme, že máme tabulku s jmény uživatelů a městy, ve který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 této tabulky je, že stejné město se opakuje několikrát pro různé uživatele. To vede k určitým problémům.

Zaprvé, neustálé opakování vede k tomu, že databáze zabírá mnohem více místa.

Zadruhé, je poměrně nepohodlné provádět operace s městy. Například chceme zobrazit na obrazovce seznam všech měst. Tak jednoduše to udělat nepůjde. Budeme muset získat všechny uživatele i s jejich městy, poté odstranit duplicity z získaných měst a teprve potom získáme tento seznam.

A nyní si představme, že v databázi je 10000 uživatelů z 10 měst - kvůli těchto 10 měst budeme muset načíst celou tabulku s obrovským množstvím řádků - půjde o velmi pomalou operaci s nesmyslnou ztrátou zdrojů.

Řešení problému

Je třeba rozdělit naši tabulku na dvě: v jedné budou uložena města a ve druhé - uživatelé. Přičemž v tabulce s uživateli bude sloupec city_id, který bude odkazovat na město uživatele.

Takže, udělejme dvě tabulky. Tabulka s městy:

cities
id name
1 city1
2 city2
3 city3

Tabulka s uživateli:

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

Předpokládejme, že potřebujete ukládat zboží (název, cena, množství) a kategorie tohoto zboží. Popište strukturu uložení.

Předpokládejme, že potřebujete ukládat řeky a moře, do kterých tyto řeky ústí. Popište strukturu uložení.

Předpokládejme, že potřebujete ukládat města a země, ve kterých se nacházejí. Popište strukturu uložení.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout