⊗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
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау