Adatbázisban híreknél user_id vagy username?
2008-11-22T10:33:02+01:00
2008-11-22T11:35:13+01:00
2022-07-02T19:30:28+02:00
  • Ne feledd egy weboldal népszerűsége a felhasználókban rejlik, ők gyűjtik össze neked a híreket. Ha például nem törlöd a felhasználóhoz tartozó hírt, lehet, hogy éppen azt keresi valaki google-ban, és így nyersz plusz látogatottságot az oldaladra, esetleg új felhasználót, aki pótolja a régi helyét, esetlegesen újat hoz.

    Jó programozást.
    Mutasd a teljes hozzászólást!
  • Értem
    Valahogy én is igy gondoltam, köszönöm a megerősítést. Bár a futásidőkről nem volt ilyen szintű tapasztalatom, de mivel nem több ezer felhasználós oldalhoz lesz, ezért akkor jo lesz a csak ID tárolása a táblában, igy mindig a legfrissebb adatot tudom lekérdezni.
    Pontot nemtom kinek adjak, mindketten hasznos dolgot mondtatok
    Mutasd a teljes hozzászólást!
  • Hali!

    Szerintem user_id. A felhasználók táblában mind a kettő benne van nem igaz?? A hírek táblában letárolod a user_id-t utánna (hirek_user_id_key), ha törli a felhasználó magát, akkor törlöd a user_id-hez tartozó hírt, az id általában rövid, nem pazarlod vele a memóriát, sem az adatbázis tárhelyet, és nem terheled feleslegesen a szervert

    valahogy így :
    delete from hirek_tabla where hirek_user_id_key='user_id';

    Amikor törli a felhasználó magát, akkor törlöd a user_id-hez tartozó híreket, de mondjuk, hogy szeretnéd megtartani az értékes hírt, akkor nem törlöd, hanem mondjuk adsz neki egy törölt felhasználó nevet a hír fejlécében, de ezt rád bízom....

    üdv.
    Mutasd a teljes hozzászólást!
  • Ha könnyen tudsz bőven hardvert rakni alá, akkor elég az ID és futásidőben vagy join-nal vagy egy külön query-vel felnézheted hozzá a felhasználó nevét. Így tiszta (normalizált) és konzisztens marad az adatbázisstruktúrád, cserébe viszont némivel lassabb lesz a futásod. Egy kliens (oldalletöltés) esetében ez a veszteség persze mérhetetlen (tehát kis terhelés esetén nem érdemes gondolkodni benne), de nagyterhelésű szerver esetén szempont lehet, hiszen sok kicsi sokra megy. Így utóbbi esetében célszerűbb inkább azt a megoldást alkalmazni, hogy a felhasználó nevét is eltárolod mindenhol az ID mellé ahol a nevet is meg kell majd jeleníteni. Így nem kell majd plusz erőforrást fordítanod a név felnézésére az ID-hoz (kivéve amikro módosítod a rekordod, de az jó esetben a felvitelt követően soha nem lesz, de ha igen, akkor is töredéke lesz az olvasó jellegű lekérdezéseknek). Így ugyan nem lesz normalizált az adatbázisod, és ha nem véded megfelelő triggerekkel és/vagy nem frissítesz minden redundáns adatot tároló táblát a users tábla módosítása esetén, akkor az integritás is szétcsúszhat (azaz a hírek mellett szerepelhet majd más név, mint ami a user táblában kapcsolódik az adott felhasználóhoz, ha pl. a neve változott időközben), de ezek a szempontok általában elhanyagolhatók ill. áthidalhatók azokhoz az előnyökhöz képest, amit a lekérdezéseken spórolsz.

    Az mindenesetre biztos, hogy az ID-t mint egyedi azonosítót el KELL tárolni a híreknél is, kivéve ha a nevet akarod egyedi azonosítóként használni. Utóbbi ugyanis kizárja a név későbbi módosítását ami sosem jó ötlet, ráadásul egy sztring egyedi kulcsként használata az adatbázisteljesítmény szempontjából sem előnyös.
    Mutasd a teljes hozzászólást!
  • Sziasztok,
    egy tapasztaltabb fejlesztő véleményét szeretném megkérdezni (a probléma elég egyszerű.. de mégis..). Adott 2 tabla (users, hirek), a usersben van user_id és username.
    A kérdés az hogy mi érdemes inkább tárolni a hirek táblába: user_id vagy username?
    Szeretném ha valaki magyarázattal megválaszolná a kérdésre a választ, hogy miert igy vagy ugy érdemes tárolni. (nekem user_id-s tetszene, dehát mivan ha az ember törlődik az adatbázisból...)

    Előre is köszönöm válaszotok
    Mutasd a teljes hozzászólást!
Címkék
abcd