jairogarcíarincó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.
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:
Cuando nos hayamos conectado, podemos introducir las líneas siguientes para crear la base de datos:
Y lo siguiente para crear un usuario con contraseña restringido a la base de datos cms y a las operaciones básicas mencionadas:
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.
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:
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:
En la siguiente clase, inicializaremos los diferentes archivos de los diferentes directorios para posteriormente añadir la lógica necesaria de la aplicación.
Publicado el 28 de Enero de 2025
bloggestor de contenidosphpmysqlcss3javascriptjqueryajax