Melyik jobb adatbázisszerkezet?
Tegyük fel, hogy van kb. 100.000 bejegyzés egy 7 oszlopos táblában. Minden bejegyzéshez 10 attribútum tartozhat. (Szóval lehet, hogy 0, lehet, hogy 1, lehet hogy 10 stb)
Melyik jobb szerkezet az alábbiak közül:
-Hozzáadunk 10 oszlopot, és mindegyik oszlop valamelyik attribútumnak felel meg. (ha 0 az oszlop értéke, akkor az az attribútum nincs "hozzácsatolva", és azt nem is használjuk úgymond (a sort magát igen))
-Csinálunk egy táblát, amiben 2 oszlop van: Előző táblában lévő sor ID-je, és az attribútum típusa.
Szóval ha az előző esetben pl 1 0 0 1 0 0 0 0 0 1 volt az attribútum mezők értéke, akkor ebben a táblában az előző sorhoz tartoznak azok a sorok (3 db), amikben az ID az előző táblában lévő sor ID-je, és a típusai rendre 1 4 10.
Így nincs felesleges hely foglalva olyan attribútumnak, amivel nem is rendelkezik az adott sor, de cserébe pedig komplexebb a lekérdezés, mert join-t kell csinálni.
Kicsit túlbonyolítottam, de szerintem érthető.
Én úgy vélem, hogy sokkal hatásosabb a második megoldás.





Szerintem nagyon tulbonyolitod, mikozben a tarhelyigeny nem csokken szamottevoen. (Ertekektol fuggoen 1/10 legjobb esetben, legrosszabb: 3-szoros novekedes.)
Legfeljebb nem-sebessegkritikus, tarhelykritikus adatbazisban, megfelelo adatokkal hasznalnam a 2. megoldast. Azonban a jobb kezelok par lekerdezes utan cachelni fogjak a join-t, ami nem biztos hogy a legjobb a tobbi lekerdezesnek.










A 2. egyertelemuen jobb.
Megfelelo indexek kialakitasava meg eleg gyors is legy.





A 2. egyertelemuen jobb.
Megfelelo indexek kialakitasava meg eleg gyors is lesz.





Attól függ, ha ezek fix attribútumok (a későbbiekben biztos hogy nem lesz semmi új) és hogy egy egy attribútum a rekordok hány százalékánál található meg.
Ha előfordulhat későbbiekben új attribútum, akkor egyértelműen külön táblba.
Egyébként: ha minden attibutum a rekordok nagy részében ki van töltve, akkor sztem egy táblában maradjon.
Ha egy-egy attributum csak kevés rekordban van kitöltve MSSQL esetén utánanézhetsz a sparse columnoknak is.





"Én úgy vélem, hogy sokkal hatásosabb a második megoldás."
Nem csak hatásosabb, hanem így illik, hogy legalább 2. NF-ben legyen az adatbázis.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!