Integridad referencial en MySQL

Observar y estudiar detenidamente el diagrama entidad/relaci�n de la figura que se muestra a continuaci�n.

Diagrama entidad/relación

Queda como ejercicio al lector verificar que a partir de este diagrama se genera un c�digo SQL similar al mostrado a continuaci�n, que nos sirve para la creaci�n de las tablas con sus correspondientes definiciones de claves for�neas:

Considerar que se desean hacer eliminaciones y actualizaciones en cascada, y que en la tabla poema_libro la clave primaria est� formada por ambos campos (id_poema y id_libro).

CREATE TABLE libro (
  id_libro INT NOT NULL,
  titulo VARCHAR(100) NULL,
  precio NUMERIC(5,2) NULL,
  PRIMARY KEY(id_libro)
) TYPE=InnoDB;

CREATE TABLE escritor (
  id_escritor INT NOT NULL,
  nombre VARCHAR(30) NULL,
  apellidos VARCHAR(40) NULL,
  direccion VARCHAR(100) NULL,
  PRIMARY KEY(id_escritor)
) TYPE=InnoDB;

CREATE TABLE poema (
  id_poema INT NOT NULL,
  id_escritor INT NOT NULL,
  titulo VARCHAR(50) NULL,
  contenido TEXT NULL,
  PRIMARY KEY(id_poema),
  INDEX(id_escritor),
  FOREIGN KEY(id_escritor) REFERENCES escritor(id_escritor)
        ON DELETE CASCADE ON UPDATE CASCADE
) TYPE=InnoDB;

CREATE TABLE poema_libro (
  id_poema INT NOT NULL,
  id_libro INT NOT NULL,
  PRIMARY KEY(id_poema, id_libro),
  INDEX (id_poema), INDEX(id_libro),
  FOREIGN KEY(id_poema) REFERENCES poema(id_poema)
        ON DELETE CASCADE ON UPDATE CASCADE,
  FOREIGN KEY(id_libro) REFERENCES libro(id_libro)
        ON DELETE CASCADE ON UPDATE CASCADE
) TYPE=InnoDB;

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR