⊗ppPmDOLT 381 of 447 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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне