![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
07/03/2005, 05:01
|
![Avatar de hunab](http://static.forosdelweb.com/customavatars/avatar91462_1.gif) | | | Fecha de Ingreso: febrero-2005 Ubicación: Barcelona
Mensajes: 133
Antigüedad: 20 años Puntos: 1 | |
Lo primero que tienes que tener en cuenta es que relacionar dos tablas no significa que exista una integridad referencial entre ellas. Para crear relaciones tienes que establecer claves foráneas, es decir, claves que referencian a campos de otra tabla. En mysql para poder añadir integridad referencial necesitas crear tablas del tipo InnoDB. Por ejemplo, para añadir una integridad referencial que al borrar un campo te borre todos los campos "hijos" tendrias que definir algo como esto.
en el momento que creas las tablas:
CREATE TABLE propietario
(
id_propietario INT NOT NULL,
PRIMARY KEY (id_propietario)
) TYPE = INNODB;
CREATE TABLE coche
(
id_coche INT NOT NULL,
id_propietario INT NOT NULL,
PRIMARY KEY(id_coche),
INDEX (id_propietario),
FOREIGN KEY (id_propietario) REFERENCES propietario(id_propietario) ON DELETE CASCADE
) TYPE = INNODB;
tambien puedes crear una clave foranea despues de haber creado las tablas:
ALTER TABLE coche ADD FOREIGN KEY(id_propietario) REFERENCES ON DELETE CASCADE propietario(id_propietario);
En este ejemplo tenemos propietarios y coches, de tal forma que si borramos al propietario automáticamente se nos borrará los coches de éste.
Me he olvidado comentar para trabajar con claves foráneas tienes que crear un índice en el campo que ha sido declarado como clave foránea.
__________________ Marcio Barrios marciobarrios.com // artículos sobre estándares y desarrollo web
Última edición por hunab; 07/03/2005 a las 05:08 |