Mikor érdemes új táblát létrehozni?
Mikor érdemes egy adott dologhoz tartozó mezőket külön szedni, és másik táblában tárolni? (pl túl sok mező, stb)
Tudnátok tanácsokat adni?
Szia.
Annak idején az ilyen jelegű dolgokat az adatbázis normálformákra való hozásával oldották meg. Elvileg éppen ilyesmire találták ki az egészet.
Szerintem egy keresést megérhet : [link]
Sok sikert.
üdv.
Szia!
Ez kicsit komplexebb, de talán eltudom mogyorózni :-)
Van pl. egy felhasználó rendszer, felhasználónak adataival.
Lehet egy tábla ami tartalmaz minden adatott.
ID, USER, PASS, Név, SzülNap, Cím, ... , SzemSzín...
Szóval rengeteg adat...
De mivel nem kell nekünk ebből a sok adatból legtöbször ennyi, csak ID, USER, PASS és esetleg NÉV, mert a többi csak felhasználó profiljában kerül egyedül feltüntetésre.
Akkor érdemes szétszedni 2 részre, egy ami USER és egy USER_PROFILE részre.
USER ugye folyton használatba van, így lehetőleg gyorsnak kell lennie, így igaz megfelelő indexeléssel az is, de azért pl. MEMCACHE esetén viszont rengeteg feles RAM -ot enne el, az olykor 3~5 -ször több adat.
Illetve olyankor még érdemes a profil mappát is szét bontani, ha pl. több címet akarunk tárolni, mert mondjuk egy webáruházról van szó.
Pl. lenne ügyfélnek egy címe, aztán számlázási, szállítási... Esetleg másodlagos címek.
Szóval, körültekintően kell megtervezni az adatbázist.
Igen, megtervezni, még mielőtt programozni kezdenél, mert utána nem gyözöd módosításokat, optimalizációkat felvinni, amivel így akár 2~3 -szor több melót jelenthet.
Akkor érdemes valamit több táblában tárolni, ha valami sokszor ismétlődik.
Pl. van egy webshop, amiben kategorizálva vannak a termékek, akkor csinálsz egy táblát a termékeknek, egyet a kategóriáknak, meg egyet amiben az ID-k alapján össze kapcsolod.
Helyes:
category_table
------------------------
id | cat_name
1 | Gyümölcs
2 | Zöldség
product_table
------------------------
id | prod_name
1 | szőlő
2 | káposzta
3 | cseresznye
prod_to_cat_table
------------------------
id | cat_id | prod_id
1 | 1 | 1
2 | 2 | 2
3 | 1 | 3
Így gyorsan ki tudod listázni a kategóriákba mik tartoznak, meg azt hogy mik tartoznak melyik kategóriába.
Helytelen:
product_table
------------------------
id | cat_name | prod_name
1 | Gyümölcs | szőlő
2 | Zöldség | káposzta
3 | Gyümölcs | cseresznye
Ez nem jó, mert sokszor ismétlődik a kategória, ha lenne mondjuk 5000 termék.
Ha tenyleg komolyan bele akarod asni magad a miertekbe, akkor: [link]
Volt egy konkret esetem, amikor egy meglevo adatbazis strukturat 3x gyorsabba tudtam tenne +1 tabla beiktatasaval.
De ez mindig fugg a feladattol, hogy hogy hatekony.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!