Autor | Zpráva | ||
---|---|---|---|
benett Profil |
#1 · Zasláno: 15. 8. 2007, 23:43:15
Mám takový začátečnický dotaz: pokud chci používat v MySQL relace mezi tabulkami, lze to nastavit v phpmyadminu nebo to bude fungovat až poté, co budu používat SQL příkazy jako JOIN v PHP kódu?
|
||
Kajman_ Profil * |
#2 · Zasláno: 16. 8. 2007, 09:07:23
Relace vytváříte pomocí join.
|
||
MzM Profil |
#3 · Zasláno: 17. 8. 2007, 15:45:26
Ve vztahu tabulka-tabulka (tedy relace) se hodně se používají tzv. primární a cizí klíče. Při návrhu tabulek se tento vztah dá označit a je možné zajistit, aby nebylo možné smazat řádek tabulky na který ukazuje řádek z jiné tabulky. Nemyslel jsi spíš toto? Tyto vazby je třeba "vytvořit" při návrhu. Příklad:
create t1 ( pk_id int primary key auto_increment, data varchar(200) ); create t2 ( pk_id int primary key auto_increment, fk_id int foreign key references t1(pk_id), data varchar(200) ) (doufám, že jsem trefil syntaxi, pokud ne, viz manuál. Umí vůbec MySQL a jeho nejpoužívanější MYISAM tyhle vazby?) lepší db engine umí nadefinovat i to, co se má dít, když se smaže právě ten řádek, na který se odkazuje. Např.: fk_id int foreigh key references t1(pk_id) on delete cascade, ... zajistí smazání tohoto záznamu z t2 pokud dojde ke smazání řádku na který odkazuje. Je jasné, že to má výhody ve zjednodušení mazání navzájem provázaných záznamů, ale i nevýhody, pokud se něco smaže "náhodou". |
||
Časová prodleva: 17 let
|
0