Foros del Web » Programando para Internet » PHP »

No se Como crear relaciones entre tablas en Mysql , se puede ?

Estas en el tema de No se Como crear relaciones entre tablas en Mysql , se puede ? en el foro de PHP en Foros del Web. Estoy trabajando en un proyecto con mysql y Php , pero no se como se pueden definir las relaciones entre tablas en Mysql , o ...
  #1 (permalink)  
Antiguo 06/03/2005, 19:41
 
Fecha de Ingreso: diciembre-2004
Mensajes: 13
Antigüedad: 13 años
Puntos: 0
No se Como crear relaciones entre tablas en Mysql , se puede ?

Estoy trabajando en un proyecto con mysql y Php , pero no se como se pueden definir las relaciones entre tablas en Mysql , o SQL , aunque me dijieron que en sql se puede hice dos tablas de prueba , se supone que las relacioné , pero luego elimine un regitro que dependia de otro y solo se eliminó y no guardó la integridad.

Favor si algen me puede ayudar se lo agradesco

  #2 (permalink)  
Antiguo 07/03/2005, 05:01
Avatar de hunab  
Fecha de Ingreso: febrero-2005
Ubicación: Barcelona
Mensajes: 133
Antigüedad: 12 años, 9 meses
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
  #3 (permalink)  
Antiguo 07/03/2005, 06:52
 
Fecha de Ingreso: diciembre-2004
Mensajes: 128
Antigüedad: 13 años
Puntos: 0
Lee este hilo:
http://www.forosdelweb.com/f18/phpmyadmin-tablas-relacionadas-275955/
Espero que te sirva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:00.