⊗ppPmDOLT 381 of 447 menu

Ma'lumotlar bazasida jadvallarni bog'lash

Faraz qilaylik, bizda foydalanuvchilar ismlari va ular yashaydigan shaharlar bilan jadval bor:

users
id name city
1 user1 city1
2 user2 city1
3 user3 city2
4 user4 city1
5 user5 city3
6 user6 city2

Ushbu jadvalning kamchiligi shundaki, bir xil shahar turli foydalanuvchilar uchun bir necha marta takrorlanadi. Bu ba'zi muammolarga olib keladi.

Birinchidan, doimiy takrorlash ma'lumotlar bazasi joyni juda ko'p egallashiga sabab bo'ladi.

Ikkinchidan, shaharlar bilan amallarni bajarish unchalik qulay emas. Masalan, biz barcha shaharlar ro'yxatini ekranga chiqarmoqchimiz. Buni shunchaki qilish mumkin bo'lmaydi. Bizga ularning shaharlari bilan birga barcha foydalanuvchilarni olish, keyin olingan shaharlardan dublikatlarni o'chirish kerak bo'ladi va shundan keyingina biz bu ro'yxatni olamiz.

Endi tasavvur qiling, bazada 10000 foydalanuvchi va 10 ta shahar bor - aynan shu 10 shahar uchun biz katta miqdordagi qatorlardan iborat butun jadvalni olib chiqishimiz kerak bo'ladi - bu juda sekin ishlovchi va resurslarni behuda sarflaydigan operatsiya bo'lib chiqadi.

Muammoni yechish

Bizning jadvalimizni ikkiga bo'lish kerak: birida shaharlar saqlansin, ikkinchisida esa foydalanuvchilar. Bunda foydalanuvchilar jadvalida city_id ustuni bo'ladi, u foydalanuvchi shahriga murojaat qiladi.

Xo'sh, keling ikkita jadval yasaylik. Shaharlar jadvali:

cities
id name
1 city1
2 city2
3 city3

Foydalanuvchilar jadvali:

users
id name city_id
1 user1 1
2 user2 1
3 user3 2
4 user4 1
5 user5 3
6 user6 2

Faraz qilaylik, siz mahsulotlarni (nomi, narxi, miqdori) va ushbu mahsulotlarning toifalarini saqlashingiz kerak. Saqlash tuzilmasini yozing.

Faraz qilaylik, siz daryolar va bu daryolar quyiladigan dengizlarni saqlashingiz kerak. Saqlash tuzilmasini yozing.

Faraz qilaylik, siz shaharlar va ular joylashgan mamlakatlarni saqlashingiz kerak. Saqlash tuzilmasini yozing.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish