sedimin Zverejnené 27. Február, 2008 Zdieľať Zverejnené 27. Február, 2008 mam jednu otazku pre ludi, ktori maju s databazami vacsie skusenosti, ako ja.. Predstavte si, ze mate webovu aplikaciu, ktora obsahuje nejake clanky. Kazdy z clankov obsahuje niekolko verzii (revizii), z ktorych je jedna aktualna. Je to tak, ako na mediawiki (wikipedia a podobne projekty). Dajme tomu, ze to reprezentujem pomocou dvoch tabuliek v databaze : Clanky (id, aktualne_id_revizie)Revizie (id, id_clanku, text) Ako vidite, je tam dvojity odkaz - clanok odkazuje na reviziu a revizia na clanok. Neviem, ako sa tohto zbavit - aktualne_id_revizie pouzivam na to, aby som vedel vybrat aktualne texty clankov a id_clanku pouzivam na to, aby som napriklad mohol zobrazit vsetky revizie daneho clanku) Napadlo ma riesenie, ze by tabulka clanky obsahovala len (id) stlpcek a revizie: (id, id_clanku, flag_aktualna_revizia, text) - pricom stlpec flag_aktualna_revizia by mal dve mozne hodnoty (napr {0, 1}), ktore by specifikovali, ci tato revizia je aktualnou reviziou pre svoj clanok ale nemoze tu vzniknut nejaka anomalia pri aktualizovani databazy? teda dalo by sa na databazovej urovni osetrit, aby neboli dve revizie nastavene ako aktualne?(mozno trigger pred vkladanim riadku / updatom riadku v tabulke revizii - ktory by vsetkym reviziam s rovnakym id_clanku nastavil flag_aktualna_revizia na 0 a az potom spravil insert/update).. ak niekto nieco viete, skuste pomoct :lol: Odkaz na príspevok Zdieľať na iných stránkach Ďalšie možnosti zdieľania...
Darkman Zverejnené 27. Február, 2008 Zdieľať Zverejnené 27. Február, 2008 Podla mna je to takto dobre. Este by som do Revizi dal stlpec prev_rev_id. Je to podla mna najprehladnejsi sposob. Podobne to mame v DB riesene pri verziovani dokumentov aj my v praci. Odkaz na príspevok Zdieľať na iných stránkach Ďalšie možnosti zdieľania...
sedimin Zverejnené 28. Február, 2008 Autor Zdieľať Zverejnené 28. Február, 2008 ktore teraz myslis ze je dobre? :lol: ten novy stav kde by revizia mala nastavene, ci je aktualnou reviziou? Odkaz na príspevok Zdieľať na iných stránkach Ďalšie možnosti zdieľania...
Darkman Zverejnené 28. Február, 2008 Zdieľať Zverejnené 28. Február, 2008 Ten povodny stav, ktory sa snazis zmenit. :lol: Odkaz na príspevok Zdieľať na iných stránkach Ďalšie možnosti zdieľania...
sedimin Zverejnené 1. Marec, 2008 Autor Zdieľať Zverejnené 1. Marec, 2008 problem teraz je, ze ak by som chcel zmazat v sucasnom systeme (clanky: id, id_aktualnej_revizie) (revizie: id, id_clanku, text)vsetky revizie, ktore nie su aktualne, tak ako by som to spravil cisto pomocou sql prikazu?napada ma riesenie pomocou kurzora,v ktorom by som presiel kazdy clanok a zmazal vsetky revizie ktore k nemu patria a sucasne nie su aktualnenieco ako v pseudo-sql for each @clanok in (select * from clanky) delete from revizie where id_clanku = @clanok[id] AND id != id_aktualnej_revizie toto bude operacia, ktoru by som spustal manualne, z casu na cas, takze nie je dolezita rychlost atd skor mi ide o to, ze ci nie je aj nejake jednoduchsie riesenie, bez pouzitia, neviem zatial, ako si mysql poradi s kurzormi a hlavne ci mi ich webhosting povoli pouzit,povodne mali zakazane aj pohlady... Odkaz na príspevok Zdieľať na iných stránkach Ďalšie možnosti zdieľania...
Odporúčané príspevky
Vytvorte si účet alebo sa prihláste, aby ste mohli písať príspevky
Ak chcete odoslať príspevok, musíte byť členom
Vytvoriť konto
Zaregistrujte si nový účet v našej komunite. Je to ľahké!
Zaregistrovať si nové kontoPrihlásiť sa
Máte už konto? Prihláste sa tu.
Prihlásiť sa teraz