Kuunganisha Majedwali katika Databesi
Tuseme tuna jedwali lenye majina ya watumiaji na miji wanayoishi:
| id | name | city |
|---|---|---|
| 1 | user1 | city1 |
| 2 | user2 | city1 |
| 3 | user3 | city2 |
| 4 | user4 | city1 |
| 5 | user5 | city3 |
| 6 | user6 | city2 |
Upungufu wa jedwali hili ni kwamba jiji moja linarudiwa mara kadhaa kwa watumiaji tofauti. Hii husababisha matatizo fulani.
Kwanza, kurudia mara kwa mara husababisha databesi kuchukua nafasi kubwa zaidi.
Pili, ni shida kufanya operesheni na miji. Kwa mfano, tunataka kuonyesha kwenye skrini orodha ya miji yote. Haiwezekani kufanya hivyo kwa urahisi. Itatubidi tupate watumiaji wote pamoja na miji yao, kisha tuondoe marudio kutoka kwa miji iliyopatikana na ndipo tutakapopata orodha hii.
Sasa hebu fikiria kuwa kwenye databesi kuna 10000
watumiaji kutoka miji 10 - ili kupata hii miji 10
tutatakiwa kupata jedwali lote
kutoka kwa idadi kubwa ya safu - itakuwa
operesheni polepole sana na upotevu wa rasilimali.
Kutatua Tatizo
Inahitajika kugawanya jedwali letu kuwa mbili: kimoja
kitaweka miji, na kingine - watumiaji.
Wakati huo huo, kwenye jedwali la watumiaji kutakuwa na safu wima
city_id, ambayo itakuwa inarejelea
jiji la mtumiaji.
Basi, hebu tufanye majedwali mawili. Jedwali lenye miji:
| id | name |
|---|---|
| 1 | city1 |
| 2 | city2 |
| 3 | city3 |
Jedwali lenye watumiaji:
| id | name | city_id |
|---|---|---|
| 1 | user1 | 1 |
| 2 | user2 | 1 |
| 3 | user3 | 2 |
| 4 | user4 | 1 |
| 5 | user5 | 3 |
| 6 | user6 | 2 |
Tuseme unahitaji kuhifadhi bidhaa (jina, bei, kiasi) na kategoria za bidhaa hizi. Eleza muundo wa uhifadhi.
Tuseme unahitaji kuhifadhi mito na bahari zinazopokea mito hii. Eleza muundo wa uhifadhi.
Tuseme unahitaji kuhifadhi miji na nchi ambazo ipo. Eleza muundo wa uhifadhi.