Administrador de DB phpMyAdmin.

Resumen.

En este artículo veremos como crear nuestras bases de datos MySQL sin saber nada de lenguaje SQL, con el administrador de base de datos phpMyAdmin. Se trata de una aplicación escrita en PHP y funciona básicamente como una Web cualquiera, lógicamente su manejo requiere de algunos conocimientos de bases de datos. Dominar esta aplicación para usos sencillos, no es complicado y existe mucha información sobre ella en Internet para cuestiones más complejas.

Artículo.

En el curso de PHP tenemos un artículo dedicado al entorno de trabajo y en este artículo, al que os remito, se habla sobre como instalar phpMyAdmin en XAMPP, con esto hecho, ya podremos acceder a nuestro administrador de bases de datos, que en nuestro servidor local tendrá una URL como esta http://localhost/phpmyadmin/. Veremos en nuestra pantalla algo como esto.



En el margen izquierdo podemos ver las bases de datos existentes. Podemos ver una base de datos ya creada por nosotros mismos, curso_mysql, con una tabla, regis_usuarios, y sobre ella un enlace “Nueva”, que nos permitirá crear nuevas tablas en esta base de datos.

Bajo el nombre de la tabla existen otras 5 bases de datos, que son las que precisa phpMyAdmin para funcionar. Estas bases de datos no se deben modificar y mucho menos eliminar, ya que el funcionamiento de phpMyAdmin se vería alterado o directamente, inutilizado. Crear una tabla mediante este administrador es sencillo, pero tenemos que saber que estamos haciendo.

Lo primero que tenemos que hacer es planificar la tabla de datos que precisamos para el objetivo que tratamos de cubrir. En este caso vamos a crear una tabla para el registro de usuarios en nuestro sitio Web. El resultado podría ser algo así:



Mas de uno pensará, aquí hay demasiados campos, con usuario, e-mail, clave; seria suficiente. Sin embargo esto no es así. Rara vez, si es que ocurre alguna vez, en una tabla existen solo los datos que aporta o ve el usuario, el motivo, es que para manejar los datos hacen falta ciertas referencias. Veamos esto un poco.

Campo 1 (id).- Es un identificador único de tipo autoincremental, es decir, cada vez que se guarda un registro, el id toma el siguiente valor. Así podemos fácilmente ir a un registro concreto. Este campo, de clave UNIQUE, no es preciso generarlo en PHP, lo genera MySQL cuando se realiza cada registro.

Campos 2, 3 y 4.- Son los datos obvios en los que cualquiera pensaría para crear un sistema de registro e identificación.

Campo 5 (time).- Este campo recoge la fecha UNIX del registro, fecha en segundos que nos da la función de PHP time(), de ahí su nombre. Me gusta por que a partir de el podemos informar al usuario de los días que lleva registrado.

Campo 6 (cd_validar).- No es suficiente con que un usuario introduzca sus datos en el formulario, es preciso que el usuario demuestre su autenticidad, y con este valor enviados como variable por URL se permitirá la validación del usuario.

Campo 7 (ip).- Como se puede imaginar, este campo recoge la dirección IP del usuario, así podemos saber, por geolocalización desde donde se ha registrado. De igual manera, si notamos una actividad sospechosa, podemos bloquear esa dirección IP o un rango de direcciones IP sospechosas.

Campo 8 (id_usuar).- Es el identificador primario de la tabla, es por tanto único, y será el valor que usaremos para reconocer a un usuario una vez introducidos los datos de acceso correctos.

Campo 9 (valida_ok).- Este campo nos permitirá saber si un usuario ha validado su registro.

Campo 10 (bloqueo).- Este campo lo considero útil por que nos permitirá denegar el acceso a un usuario, que por ejemplo, publica comentarios inadecuados en nuestro sitio Web. Permitir el acceso o denegarlo, es tan simple como modificar el valor de este campo.

Campo 11 (sexo).- Es una costumbre particular, me gusta saber si el usuario que se registra es hombre o mujer. Este campo seria perfectamente prescindible en lo que a términos de programación se refiere.

Campo 12 (f_regis).- Es la fecha y hora de registro del usuario, este dato también es prescindible en lo que a programación se refiere ya que puede ser calculado a partir del campo 5 (time), pero me gusta poder ver la fecha en términos convencionales aaaa-mm-dd hh:mm.

Ni que decir tiene que estos criterios son los míos, cualquiera puede realizar otra recogida de datos u otros objetivos para ellos. Con esto, mas que otra cosa, lo que se pretende es mostrar como la recogida de datos no es algo arbitrario, es algo que debe estar motivado por algún objetivo.

La llaves que aparecen en algunos campos, hacen referencia, además de la la clave primaria, indicada en el campo id_usuar, a campos de valor único, el nombre de usuario, el e-mail o el cd_validar, por motivos obvios, no pueden repetirse si queremos que nuestro sistema de identificación funcione correctamente.

Crear esta tablas a partir del formulario de phpMyAdmin, puede hacerse un poco pesado, por eso este gestor nos permite generar la sintaxis de la tabla, y por ejemplo modificarla, sin tener que empezar desde cero. Así, a través del enlace exportar podemos obtener la sintaxis de esta tabla, es la siguiente.


-- phpMyAdmin SQL Dump
-- version 5.1.1
-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 19-11-2022 a las 23:41:01
-- Versión del servidor: 10.4.21-MariaDB
-- Versión de PHP: 7.3.31

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
--
-- Base de datos: `curso_mysql`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `regis_usuarios`
--
CREATE TABLE `regis_usuarios` (
`id` int(10) NOT NULL,
`usuario` varchar(25) NOT NULL,
`email` varchar(75) NOT NULL,
`clave` varchar(30) NOT NULL,
`time` int(10) NOT NULL,
`cd_validar` varchar(20) NOT NULL,
`ip` varchar(15) NOT NULL,
`id_usuar` varchar(32) NOT NULL,
`validaok` enum('si','no') NOT NULL,
`bloqueo` enum('si','no') NOT NULL,
`sexo` enum('1','2') NOT NULL,
`f_regis` varchar(20) NOT NULL
) ENGINE=MYISAM DEFAULT CHARSET=utf8;
--
-- Índices para tablas volcadas
--
--
-- Indices de la tabla `regis_usuarios`
--
ALTER TABLE `regis_usuarios`
ADD PRIMARY KEY (`id_usuar`),
ADD UNIQUE KEY `id` (`id`),
ADD UNIQUE KEY `usuario` (`usuario`),
ADD UNIQUE KEY `email` (`email`),
ADD UNIQUE KEY `cd_validar` (`cd_validar`);
--
-- AUTO_INCREMENT de las tablas volcadas
--
--
-- AUTO_INCREMENT de la tabla `regis_usuarios`
--
ALTER TABLE `regis_usuarios`
MODIFY `id` int(10) NOT NULL AUTO_INCREMENT;
COMMIT;


Con esta sintaxis una vez guardada en un archivo con extensión “.sql” (se puede crear con el mismo Notepad que usamos para crear nuestro código PHP), y a través del enlace "Importar" podemos tener una nueva tabla idéntica, para por ejemplo, usarla en otra base de datos, o como copia de seguridad de la estructura de la tabla.
Tags: PhpMyAdmin || base de datos || DB || tabla || campos || índices || claves

Comentarios.

Sin comentarios, publica el tuyo.