Maglumatlar bazasyndaky tablisalary birikdirmek
Bizde ulanyjylaryň adlary we olaryň ýaşaýan şäherleri bar bolan bir tablisa bolsun:
| id | name | city |
|---|---|---|
| 1 | user1 | city1 |
| 2 | user2 | city1 |
| 3 | user3 | city2 |
| 4 | user4 | city1 |
| 5 | user5 | city3 |
| 6 | user6 | city2 |
Bu tablisanyň kemçiligi şu ýerde, bir şäher üýtgeşik ulanyjylar üçin birnäçe gezek gaýtalanylýar. Bu käbir kynlyklara getirýär.
Birinjiden, yzygiderli gaýtalanyş maglumatlar bazasynyň ýatdaýjyda has köp ýer tutmagyna getirýär.
Ikinjiden, şäherler bilen amallary ýerine ýetirmek ýeterlik ýaramazdyr. Mysal üçin, biz ekrana ähli şäherleriň sanawyny görkezmek isleýäris. Muny şeýle ýönekeý ýagdaýda etmek mümkin bolmaz. Biz ähli ulanyjylary şäherleri bilen alyp, soňra alynan şäherlerden gaýtalananlary aýyrmaly we ancag şondan soň bu sanawy alyp bileris.
Indi bolsa, maglumatlar bazasynda 10000 ulanyjydan
we 10 şäherden diýip göz öňüne getireliň - bu 10
şäher üçin sany köp setirlerden ybarat tablisanyň
hemmesini almaly bolar - bu örän ýawaş amal we resurslaryň
manyz islegi bolar.
Kynlygy çözmek
Bizim tablisamyzy iki bölmeli: biri şäherleri saklamaly,
ikinjisi bolsa ulanyjylary saklamaly.
Şeýlelikde, ulanyjylaryň tablisasynda ulanyjynyň şäherine
salgy berýän city_id stolbasy bolmaly.
Şeýlelikde, iki tablisa dözedeliň. Şäherleriň tablisasy:
| id | name |
|---|---|
| 1 | city1 |
| 2 | city2 |
| 3 | city3 |
Ulanyjylaryň tablisasy:
| id | name | city_id |
|---|---|---|
| 1 | user1 | 1 |
| 2 | user2 | 1 |
| 3 | user3 | 2 |
| 4 | user4 | 1 |
| 5 | user5 | 3 |
| 6 | user6 | 2 |
Size harytlar (ady, bahasy, mukdary) we şol harytlaryň kategoriýalaryny saklamak gerek diýeliň. Saklamanyň gurluşyny ýazyň.
Size derýalar we olaryň guýýan deňizlerini saklamak gerek diýeliň. Saklamanyň gurluşyny ýazyň.
Size şäherleri we olaryň ýerleşýän ýurtlaryny saklamak gerek diýeliň. Saklamanyň gurluşyny ýazyň.