Anonymní profil Taiwan – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Taiwan – Programujte.comAnonymní profil Taiwan – Programujte.com

 

Příspěvky odeslané z IP adresy 88.146.225.–

MySQL › Problém s ON DELETE
31. 3. 2014   #188831

Kdyz dam do table5 odkaz primo na table1, misto toho aby to tu hodnotu bralo z table4, tak to funguje normalne. asi to budu muset takhle predelat....

MySQL › Problém s ON DELETE
31. 3. 2014   #188830

#18 peter
Jakto, že to není patrné z obrázku? Ty nazvy sloupcu nejsou voleny jen tak... vsude je ondelete - cascade. Tak treba sloupec table4_table2_table1_idtable1 odkazuje na table2_table1_idtable1 v table4 atd.

MySQL › Problém s ON DELETE
31. 3. 2014   #188821

Koukám, že psát na toto fórum je docela otravné a to myslim především díky individuum, kteří umějí akorát postovat nechutné obrázky a nic víc, možná by měl server přehodnotit strategii neregistrovaných uživatelů....

#17 peter

Zajímavé je, že mi workbench tuto strukturu takto nabídne automaticky a pak s ní mysql neumí pracovat... Pořád mi nedochází v čem je takový problém? V tom, že tam mám duplicitní idcka? No a co? tak tam jsou?

 jako toto:

SELECT e.jmeno, a.vysledek
FROM vysl a
  LEFT JOIN prenos_stav b ON b.id=a.id_prenos_stav
  LEFT JOIN prenos c ON c.id=b.id_prenos
  LEFT JOIN zadost d ON d.id=b.id_zadost
  LEFT JOIN klient e ON e.id=d.id_klient
WHERE e.klient='lojza'

vs toto:

SELECT * FROM vysledky WHERE klienti_id = "idecko"

je docela rozdíl a to jak ve složitosti zápisu, tak podle mne i v času potřebném pro vykonání příkazu...

Jinak nepoužívám žádné speciální příkazy. Databaze je vlastne obrazem trid v PHP, takze da se rict ze vzdy nacitam cely radek (1 radek = 1 objekt) a stejne tak kdyz ho chci smazat tak mám pouze prikaz:

DELETE FROM klienti WHERE id="idcko"


no a tento prikaz když provedu a ve vysledcich je vice radku patrici k jednomu klientovi / zadosti tak se mi nesmazou vsechny....

MySQL › Problém s ON DELETE
31. 3. 2014   #188816

#14 Kit
No kdyz je to dulezite, tak table1 = klienti, table2 = zadosti klienta, table3 - definice prenosu, table4 - statusy prenosu (v jakym kroku je zadost v prenosu), table5 - statusy-vysledky (jeden status muze mit vice vysledku, podle toho v jake casti prenosu se prave nachazi)

No a praxe je takova, ze potrebuju z table5 zjistit jaky klient mel ten nebo onen vysledek. Jako muzu vyhazet ty dalsi sloupce s IDckama a nechat tam pouze odkaz na predchazejici tabulku, tzn ze v table5, by byl odkaz pouze na table4. Jenze kdyz pak budu chtit vytahnout vsechny vysledky pro klienta z table5, tak to bude docela dlouhej a pro me temer nepouzitelnej prikaz. Musel bych z table5 nacist table4, tam zjistit jaka to je zadost(table2) a pak se teprve dohrabat k tomu, komu ta zadost patri (table1). Tzn ze nemohu pouzit jednoduchej prikaz where klienti_id (table1_id) = x

Taiwan
MySQL › Problém s ON DELETE
26. 3. 2014   #188638

#8 Kit
To znamená konkrétně co? :)

Taiwan
MySQL › Problém s ON DELETE
26. 3. 2014   #188637

Jinak skutečně v table4 jsou odkazy na table1, table2, table3. Stejne tak i v table5 jsou odkazy na table1, table2, table3, table4. Nevidím v tom nějaký problém a dost mi to usnadňuje práci, protože je jednodušší vzít jeden řádek z jedné tabulky a s ním i všechny odkazy na související věci, než to nějak dohledávat....

Taiwan
MySQL › Problém s ON DELETE
26. 3. 2014   #188635

#5 Kit
tento návrh jsem jen narychlo sestrojil ve Workbench a nazvy se takhle dali automaticky, jinak to mám pojmenovaný jinak... Nechci sem dávat, přímo strukturu dtb.

Taiwan
MySQL › Problém s ON DELETE
26. 3. 2014   #188634

Tak ještě oprava, maže si to jak chce. Někdy to smaže dva, někdy jeden. A přes phpmyadmina to maže taky blbě, jako přes query...

Taiwan
MySQL › Problém s ON DELETE
26. 3. 2014   #188631

Právě, že používám InnoDB. Dělá to jen u tabulky která bere z jiné dceřinné. Pro ukázku struktura je zhruba taková:

Připojen obrázek.

Všude je ON DELETE - CASCADE

A když v table1 smažu záznam a v table5 je více radku odkazujicich na table4, tak mi tam vždycky nějakej zůstane. Jak jsem již psal výše.

Taiwan
MySQL › Problém s ON DELETE
25. 3. 2014   #188614

Dobrý den, mám takový problém s foreign klíčema. Mám několik tabulek, které jsou vzájemně provázány a problém je v tom, že když v jedné z těch tabulek, mám více řádků odkazující na jeden řádek v mateřské tabulce. Tak se při smazání řádku v mateřské tabulce nesmažou všechny řádky na něj odkazující. Když je v dceřinné pouze jeden řádek, tak se smaže. Pokud je jich tam více, kteří odkazují na stejný řádek, tak se smaže vždy ten poslední, někdy i předchozí a vždy zůstane ten první. I přes to, že už nemá na co odkazovat. Ovšem pokud řádek v mateřské tabulce smažu přímo z phpmyadmin tak se smažou i všechny odkazující řádky. Divné co? Tak teď babo raď :) Kde je problém? Děkuji za připadné odpovědi.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032019 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý