elsődleges kulcsok és a konzisztencia
Sziasztok,
Bedobom a közösbe a problémámat, hátha...
Témák, hozzászólások struktúrájának építésekor belefutottam egy "integrity constraint violation" hibába.
A témák felől közelítve One to Many struktúrának megfelel a témák-hozzászólások kapcsolat, a hozzászólások felől Many to One.
A probléma az, hogy a témák táblán lefuttatott truncate nem törli a hozzászólásokat, de a témát sem, a hozzászólásokban lévő hivatkozó kulcsok miatt. Trigger nem játszik, mert a truncate-kor az before delete trigger nem fut le. A hozzászólás hivatkozik a témára, így csak hozzászólásnál tudnám beállítani az onDelete CASCADE opciót, de annak meg azért nem lenne értelme, mert nem a hozzászólást akarom törölni, hanem a témát.
Elméletileg nem világrengető a probléma, csak eddig nem foglalkoztam szigorúan konzisztens adatbázisok építésével.
Ha tud valaki könyvet, doksit, akármit ami segíthet a probléma megoldásában, ne tartsa magában! Köszi!
ui: mysql adatbázis innodb driverrel.
ui2: doctrine2-t és symfony2-t használ a project és a doctrine:fixtures:load --append nélkül kiüríti az adatbázist mielőtt újra betölti. a probléma ezen a ponton van.
■ Bedobom a közösbe a problémámat, hátha...
Témák, hozzászólások struktúrájának építésekor belefutottam egy "integrity constraint violation" hibába.
A témák felől közelítve One to Many struktúrának megfelel a témák-hozzászólások kapcsolat, a hozzászólások felől Many to One.
A probléma az, hogy a témák táblán lefuttatott truncate nem törli a hozzászólásokat, de a témát sem, a hozzászólásokban lévő hivatkozó kulcsok miatt. Trigger nem játszik, mert a truncate-kor az before delete trigger nem fut le. A hozzászólás hivatkozik a témára, így csak hozzászólásnál tudnám beállítani az onDelete CASCADE opciót, de annak meg azért nem lenne értelme, mert nem a hozzászólást akarom törölni, hanem a témát.
Elméletileg nem világrengető a probléma, csak eddig nem foglalkoztam szigorúan konzisztens adatbázisok építésével.
Ha tud valaki könyvet, doksit, akármit ami segíthet a probléma megoldásában, ne tartsa magában! Köszi!
ui: mysql adatbázis innodb driverrel.
ui2: doctrine2-t és symfony2-t használ a project és a doctrine:fixtures:load --append nélkül kiüríti az adatbázist mielőtt újra betölti. a probléma ezen a ponton van.
a hiba megoldása mégis csak
Következőkben szembejött egy $lastComment hivatkozási hiba. Erre betettem egy onDelete="SET NULL"-t ami mondjuk nem a legjobb megoldás, de mivel truncate miatt került be, így nem lesz inkonzisztens az adatbázis. Sor törlésnél meg majd triggert futtatok.
De ezzel a megoldással előjött egy misztikus "General error: 1030 Got error -1 from storage engine" error. -.-"