Autor Zpráva
Camo
Profil
Zdravím,
prosím vás vie mi niekto poradiť s týmto:
Mám tabuľku menu a tabuľku content.
Menu má previazanie s contentom cez foreign key na stĺpci 'content_id'. To je ok.
Mám ale ešte v tb. menu aj v tb. content stĺpec 'status'. A potreboval by som, aby sa mi automaticky updatoval tento 'status' v tb. menu, keď ho zmením v tb. content(ak je to možné).
Momentálne mám na tom definovaný foreign key, ale ten neberie do úvahy idčka riadkov. Proste keď zmením z 0 na 1, tak to updatne všetky riadky s hodnotou 0 na 1. Potreboval by som, aby sa v menu updatol len riadok s daným content_id, aby som nemusel klásť dva dotazy.
Ďakujem.
Virtus
Profil
Zdravím, pokud můžeš používat triggery v databázi, tak bych to udělal pomocí nich:
http://dev.mysql.com/doc/refman/5.6/en/trigger-syntax.html
Camo
Profil
Virtus:
No to ma napadlo, len sa mi do toho nechce, tak by som rád vedel či to nejde nejak jednoduchšie.


Tak momentálne som dospel k takémuto dotazu:
UPDATE content, menu SET content.status=0, menu.status=0
WHERE content.id=17 and menu.content_id=17;
Funguje to, len neviem, či je to čisté riešenie. Neviem ako je to s tým AND v podmienke where. Nemalo by byť OR?
juriad
Profil
Camo:
Navrhuješ databázi chybně. Neměl bys mít potřebu mít stejná data uložená na několika místech a zajišťovat jejich synchronizaci.
Když menu sjoinuješ s contentem, tak bude tato „virtuální tabulka“ obsahovat sloupec status.
Camo
Profil
juriad:
Máš pravdu. Len robím to v Nette a v Nette database som si v joinoch neni istý, tak som to chcel obísť.

EDIT: Predsa som to zmazal a pôjdem cez tie joiny.
Zechy
Profil
Camo:
Nette\Database\Connection poskytuje funkci query(), kde si můžeš napsat vlastní dotaz. Vzhledem k tomu, že já bývám na joiny náročný, tak nic jinýho nepoužívám. (A v aktuálním projektu se nemůžu spoléhat na podporu InnoDB).
Camo
Profil
Zechy:
To je zase zbytočné používať PDO, nie? Stráca sa univerzálnosť, keď používaš proprietárnu syntax.
Zechy
Profil
Camo:
Jsou věci, kdy to použiju - prepared statements při updatu, Database Context při insertu(chci pak získat ID)... Ale na selekci mi to bohužel nevyhovovalo. Navíc, když už tam existuje nějáké "automaticky" vytváření spojení, tak proč ho nepoužít.
Camo
Profil
Zechy:
No veď hej, ja tiež rátam s tým, že narazím na select, kde nebude iná možnosť, alebo na nejaký extra podmienený update.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: