⊗ppPmDOLT 381 of 447 menu

Legătura tabelelor în bazele de date

Să presupunem că avem un tabel cu numele utilizatorilor și orașele în care locuiesc:

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

Dezavantajul acestui tabel este că același oraș se repetă de mai multe ori pentru diferiți utilizatori. Acest lucru duce la unele probleme.

În primul rând, repetarea constantă duce la faptul că baza de date începe să ocupe mult mai mult spațiu.

În al doilea rând, este destul de incomod să efectuăm operațiuni cu orașe. De exemplu, dorim să afișăm pe ecran o listă cu toate orașele. Nu vom putea să facem acest lucru atât de simplu. Va trebui să obținem toți utilizatorii împreună cu orașele lor, apoi să eliminăm duplicatele din orașele obținute și abia atunci vom obține această listă.

Și acum să ne imaginăm că în baza de date sunt 10000 utilizatori din 10 orașe - pentru aceste 10 orașe va trebui să extragem întregul tabel cu un număr uriaș de rânduri - va rezulta o operație foarte lentă cu o irosire absurdă de resurse.

Rezolvarea problemei

Trebuie să împărțim tabelul nostru în două: într-una vor fi stocate orașele, iar în cealaltă - utilizatorii. În acest caz, în tabelul cu utilizatori va exista o coloană city_id, care va face referire la orașul utilizatorului.

Deci, să facem două tabele. Tabelul cu orașe:

cities
id name
1 city1
2 city2
3 city3

Tabelul cu utilizatori:

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

Să presupunem că trebuie să stocați produse (denumire, preț, cantitate) și categoriile acestor produse. Descrieți structura de stocare.

Să presupunem că trebuie să stocați râuri și mările în care se varsă aceste râuri. Descrieți structura de stocare.

Să presupunem că trebuie să stocați orașe și țările în care se află acestea. Descrieți structura de stocare.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge