Врзување на табели во бази на податоци
Нека имаме табела со имиња на корисници и градови во кои тие живеат:
| 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, која ќе се повикува
на градот на корисникот.
Значи, ајде да направиме две табели. Табела со градови:
| id | name |
|---|---|
| 1 | city1 |
| 2 | city2 |
| 3 | city3 |
Табела со корисници:
| id | name | city_id |
|---|---|---|
| 1 | user1 | 1 |
| 2 | user2 | 1 |
| 3 | user3 | 2 |
| 4 | user4 | 1 |
| 5 | user5 | 3 |
| 6 | user6 | 2 |
Нека треба да чувате производи (име, цена, количина) и категории на овие производи. Опишете ја структурата на складирање.
Нека треба да чувате реки и мориња во кои се влеваат овие реки. Опишете ја структурата на складирање.
Нека треба да чувате градови и земји, во кои се наоѓаат. Опишете ја структурата на складирање.