Kuunganisha Majedwali katika Databesi kwa kutumia Python
Wacha tuwe na jedwali lenye majina ya watumiaji na miji wanayoishi:
| id | jina | mji |
|---|---|---|
| 1 | mtumiaji1 | mji1 |
| 2 | mtumiaji2 | mji1 |
| 3 | mtumiaji3 | mji2 |
| 4 | mtumiaji4 | mji1 |
| 5 | mtumiaji5 | mji3 |
| 6 | mtumiaji6 | mji2 |
Upungufu wa jedwali hili ni kwamba mji mmoja hujirudia mara kadhaa kwa watumiaji tofauti. Hii husababisha matatizo fulani.
Kwanza, kurudia mara kwa mara husababisha databesi kuchukua nafasi kubwa zaidi.
Pili, ni vigumu kutekeleza shughuli na miji. Kwa mfano, tunataka kuonyesha orodha ya miji yote. Hatuwezi 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 10
miji - kwa ajili ya hii
10 miji itatubidi tupate jedwali zima
kutoka kwa idadi kubwa ya safu -
itakuwa operesheni yenye kuchukua muda mrefu na
upotevu wa rasilimali bila maana.
Kutatua Tatizo
Inahitajika kugawanya jedwali letu kuwa mbili: kwenye moja
itatunzwa miji, na kwenye ya pili - watumiaji.
Wakati huo huo, kwenye jedwali la watumiaji kutakuwa na safu wima
city_id, ambayo itarejelea
mji wa mtumiaji.
Basi, hebu tufanye majedwali mawili. Jedwali lenye miji:
| id | jina |
|---|---|
| 1 | mji1 |
| 2 | mji2 |
| 3 | mji3 |
Jedwali lenye watumiaji:
| id | jina | city_id |
|---|---|---|
| 1 | mtumiaji1 | 1 |
| 2 | mtumiaji2 | 1 |
| 3 | mtumiaji3 | 2 |
| 4 | mtumiaji4 | 1 |
| 5 | mtumiaji5 | 3 |
| 6 | mtumiaji6 | 2 |
Kazi za Vitendo
Wacha tuseme unahitaji kuhifadhi bidhaa (jina, bei, kiasi) na kategoria za bidhaa hizi. Eleza muundo wa uhifadhi.
Wacha tuseme unahitaji kuhifadhi mito na bahari, ambayo mito hiyo iningia. Eleza muundo wa uhifadhi.
Wacha tuseme unahitaji kuhifadhi miji na nchi, ambayo miji hiyo ipo. Eleza muundo wa uhifadhi.