Como Crear Un Blog
zenyrs23 de Septiembre de 2013
10.044 Palabras (41 Páginas)343 Visitas
Unidad 21. Cómo crear un Blog (I)
21.1. Introducción
Hasta ahora hemos visto cómo empezar a manejarnos con páginas dinámicas de acceso a datos utilizando PHP y un
servidor MySQL.
La complejidad de las páginas que creemos dependerá de la profundidad de nuestros conocimientos de ambas
tecnologías, por lo que muchas veces (sobre todo al principio) nos será difícil alcanzar algunos objetivos que nos
propongamos.
Vamos a dedicar este tema a la elaboración de un proyecto complejo en el que deberemos emplear estas técnicas de un
modo más completo.
Para ello crearemos un blog o bitácora y utilizaremos herramientas y procedimientos que hemos visto hasta ahora. No
te pierdas este tema, introduciremos algunos conceptos que quizá te resulten interesantes.
Un blog es una página web donde se introduce contenido periódicamente sobre un tema en particular.
Su contenido suele organizarse en entradas que se van añadiendo con una asiduidad relativa.
Normalmente, estas entradas pueden comentarse. Es decir, cualquier usuario (o a veces solamente los registrados)
pueden dejar su opinión sobre la entrada o sobre el blog en general.
Para facilitar la navegación por la página estas entradas suelen estar organizadas por temas o categorías, de modo que si
te interesa poder leer todas las entradas relacionadas con un tema en concreto te sea mucho más sencillo.
Todo blog deberá tener, del mismo modo, una parte privada desde donde el usuario dueño de la bitácora pueda
administrar y gestionar los contenidos del blog.
Desde el panel de administración, que debe estar protegido para que sólo tengan acceso aquellas personas con
privilegios suficientes, podremos añadir, modificar o eliminar entradas, comentarios y categorías.
De hecho, la función de esta parte privada es que puedas actualizar el contenido sin necesidad de tener que recurrir a la
interfaz de phpMyAdmin para insertar nuevos registros como vimos en el tema anterior.
El objetivo de este tema no es entrar en profundidad en cada uno de los detalles, porque podríamos no terminar nunca.
Explicaremos el modo en el que deberemos actuar para alcanzar una estructura cerrada que cumpla los requisitos
mínimos que un blog necesita.
El aspecto y funcionalidades finales están en tus manos, puedes añadir tantas cosas como quieras.
Así que vamos a empezar...
21.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.
En la tabla categorías deberemos listar el nombre de las categorías en las que se dividen las entradas.
En la tabla entradas deberemos almacenar el texto de la entrada con su título y fecha. Obviamente aquí
deberemos hacer referencia a qué categoría pertenece la entrada. En un blog más complejo podríamos incluso
almacenar qué integrante de la tabla de usuarios creó la entrada...
En la tabla comentarios deberemos almacenar el texto del comentario junto con la información del autor, como
su nombre y correo electrónico, por ejemplo. Con conocimientos más profundos de PHP podríamos guardar
hasta su dirección IP.
Finalmente en la tabla usuarios guardaremos el nombre y contraseña de los usuarios que tendrán acceso a la
edición del blog. Más adelante verás que incluso se podrían establecer niveles de privilegios entre ellos.
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:
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 (no existía en las primeras
versiones) 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:
Haz clic sobre él y verás una nueva ventana como ésta:
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 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.
Estructura de datos de un Blog (I)
Objetivo
Practicar las operaciones necesarias para crear la estructura de datos de un blog.
Ejercicio
1. Si WampServer no se está ejecutando, lánzalo para realizar este ejercicio.
2. Si el servicio de MySQL no se está ejecutando, lánzalo para poder tener acceso a las bases de datos.
3. Haz clic izquierdo sobre el icono de WampServer en el área de notificación y selecciona la opción phpMyAdmin.
4. Se abrirá la ventana principal del programa, escribe bd_blog en el campo de texto de la imagen.
5. Selecciona utf-8_spanish_ci en el desplegable Cotejamiento.
6. Pulsa Crear para crear la base de datos.
7. Pasaremos a un nueva ventana con la estructura de la base de datos, para crear una nueva tabla escribe
Entradas en Nombre y 5 en Campos.
8. Pulsa el botón Continuar para seguir.
9. Ahora vamos a configurar los campos.
Al primer campo lo llamaremos Id, de tipo INT, con índice de tipo PRIMARY y marcando la opción A_I (auto
incremento). Pues será un campo numérico entero, autoincremental (cada vez que se graba un registro el
sistema le asigna un número más que el anterior), y será la clave principal de la tabla (primario).
10. Al segundo lo llamaremos Titulo, de tipo VARCHAR y con longitud 100.
11. Al tercero lo llamaremos Texto, de tipo LONGTEXT.
12. Al cuarto lo llamaremos Fecha, de tipo DATE.
13. Al último lo llamaremos Id_Categoria, de tipo INT, con longitud 11 con índice de tipo INDEX. Lo definimos
indexado para poder relacionarlo con la tabla Categorias.
14. Por último, cambiamos el Motor de almacenamiento a InnoDB para poder trabajar con relaciones.
15. Haz clic en Grabar para guardar los cambios y la tabla ya estará lista para utilizarse.
16. Repite los mismos pasos para crear una tabla llamada Categorias con 2 campos.
17. Al primero lo llamaremos Id, de tipo INT, con A_I y un índice PRIMARY.
18. Al segundo lo llamaremos Nombre, de tipo VARCHAR y con longitud 15.
19. Emplearemos el Motor de almacenamiento del tipo InnoDB.
20. De nuevo, repite los pasos para crear una tabla llamada Comentarios con 6 campos.
21. Al primero lo llamaremos Id, de tipo INT, con A_I y PRIMARY.
22. Al segundo lo llamaremos Autor, de tipo VARCHAR y con longitud 30.
23. Al tercero lo llamaremos Correo_Autor, de tipo VARCHAR y con longitud 30.
24. Al cuarto lo llamaremos Comentario, de tipo LONGTEXT.
25. Al quinto lo llamaremos Fecha, de tipo DATE.
26. Al último lo llamaremos Id_Entrada, de tipo INT, con longitud 11 e INDEX. Indexado
...