Contents

La base de datos

Introducción

Nuestro Blog estará basado en una base de datos MySQL a la que accederemos mediante PDO (puedes encontrar más información en mi clase Bases de Datos en PHP.

La base de datos

Nuestra base de datos debe tener codificación UTF-8 e intercalación utf8_general_ci. Se recomienda además crear un usuario de base de datos restringido a las operaciones básicas CREATE, UPDATE, SELECT y DELETE, ya que no va a necesitar ninguna mas. Todo esto lo podríamos hacer mediante algún editor gráfico de MySQL, o directamente accediendo con nuestro usuario root mediante un terminal con el comando:

Ver ejemplo de código

Cuando nos hayamos conectado, podemos introducir las líneas siguientes para crear la base de datos:

Ver ejemplo de código

Y lo siguiente para crear un usuario con contraseña restringido a la base de datos cms y a las operaciones básicas mencionadas:

Ver ejemplo de código

Nota: Para evitar errores de validación de password, ésta debe tener al menos 8 caracteres e incluir un número, una mayúscula y un carácter especial. Una vez creada la base de datos, necesitamos dos tablas: usuarios y noticias. El motor utilizado (MyISAM o InnoDB) es indiferente para este caso.

La tabla usuarios

Almacenará los datos de los usuarios del CMS, así como los permisos concedidos a cada uno de ellos:
  • id: es la clave primaria numérica e identifica de manera único a ese usuario
  • usuario: es el nombre del usuario y también es único
  • clave: es la clave de acceso, almacenada mediante un hash de cadena password_hash() de un solo sentido. Inicialmente será vacío, pero no permitiremos crear uno nuevo a menos que se rellene dicho campo.
  • fecha_acceso: almacena la fecha del último acceso del usuario
  • activo: indica si el usuario está activo (1) o inactivo (0)
  • usuarios: indica si el usuario tiene acceso (1) o no (0) a la gestión de usuarios
  • noticias: indica si el usuario tiene acceso (1) o no (0) a la gestión de noticias
A continuación se detalla la Sintaxis SQL para la creación de la tabla:

Ver ejemplo de código

La tabla noticias

Almacenará los datos de cada noticia del CMS:
  • id: es la clave primaria numérica e identifica de manera única a esa noticia
  • titulo: cadena de texto para el título de la noticia
  • slug: cadena de texto para el slug o enlace personalizado de la noticia
  • entradilla: cadena de texto para la entradilla de la noticia.
  • texto: texto de la noticia
  • activo: indica si la noticia está activa (1) o inactiva (0)
  • home: indica si la noticia se muestra en la home (1) o no (0)
  • fecha: indica la fecha de publicación de la noticia
  • autor: indica el nombre del autor de la noticia
  • imagen: indica el id de la imagen de la noticia
A continuación se detalla la Sintaxis SQL para la creación de la tabla:

Ver ejemplo de código

En la siguiente clase, inicializaremos los diferentes archivos de los diferentes directorios para posteriormente añadir la lógica necesaria de la aplicación.