Unidad 22. Cómo crear un Blog (II)


22.2. Estructura de datos

Nuestro primer paso para la creación de un blog será crear la estructura de datos que contendrá la información de las entradas y otros elementos del sitio.

En un sitio simple deberemos crear como mínimo 4 tablas: categorias, entradas, comentarios y usuarios.

 

El punto en cuestión en este caso es el hecho de que en la forma más simplificada las tres primeras tablas se encuentran relacionadas del siguiente modo:

Tablas del Blog

Como puedes ver en la imagen en la tabla entradas existe un campo que apunta al ID de categorías, y del mismo modo en la tabla comentarios tenemos que tener un campo que apunte a la entrada a la que pertenece dicho comentario.

 

El problema nos surge, por ejemplo, cuando insertemos una página que nos ayude a eliminar entradas. ¿Qué hacemos con los comentarios asociados a ella? ¿Deberemos crear una página más para que cuando se borre una entrada también lo hagan sus comentarios relacionados? ¿Y repetirlo para las categorías y sus entradas?

No va a hacer falta.

Podremos utilizar una característica de la definición de la base de datos que existe en MySQL y en otros sistemas gestores de bases de datos, el borrado y actualización en cascada.

Para poder utilizar esta característica, debemos de utilizar InnoDB como Motor de almacenamiento. Esta opción la encontramos al definir los campos de la tabla, y por defecto está seleccionado MyISAM.

Desde el entorno de phpMyAdmin podremos definir esta característica en la vista de relaciones.

Podrás encontrar el enlace a esta vista desde la vista de detalle de cualquier tabla que emplee InnoDB como motor de almacenamiento:

Enlace a Vista de Relaciones

Haz clic sobre él y verás una nueva ventana como ésta:

Vista Relaciones

Desde aquí podremos especificar las relaciones que tiene la tabla con las demás tablas de la base de datos y qué hacer cuando un elemento relacionado se borra o modifica.

Fíjate que en el ejemplo solamente los campos Id e Id_Categoría son susceptibles de esta opción. Eso es debido a que hemos definido ambos como índices, el primero por ser clave primaria y el segundo porque así lo indicamos en el momento de su creación utilizando el botón Índice Indice o seleccionado la opción Index del desplegable Índice.

 

El modo en el que deberemos definir nuestro objetivo es el siguiente. A un campo indexado podemos asignarle una relación con otro campo indexado de otra tabla (en el ejemplo Id_Categoria está relacionado con el campo Id de la tabla categorias).

Deberemos decirle a phpMyAdmin qué hacer cuando se borre un elemento en la tabla relacionada categorias (ON DELETE) o cuando se modifique el valor de clave de un elemento (ON UPDATE).

La opción que nos interesa en este caso es CASCADE que actúa aplicando los cambios en cascada. Esto es, si borramos un elemento en la tabla categorias, se borrarán todos los registros en la tabla entradas que tengan el mismo ID en el campo Id_Categoria.

En el caso de que modificásemos el ID en la tabla categorias también se actualizaría en todos los registros de entradas con el mismo Id_Categoria si tenemos indicado ON UPDATE CASCADE.

Piensa que esa tabla podría estar relacionada con otra. Por tanto, al actualizar o borrar esta en cascada, pasaría lo mismo con la tabla relacionada, y así sucesivamente.

 

Para practicar la creación de índices y relaciones realiza el ejercicio paso a paso Estructura de datos de un blog.


Marzo-2015
Pág. 22.2
Atrás Inicio Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook ,    G+            Sobre aulaClic            Política de Cookies


© aulaClic S.L. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.