El diseño de una base de datos de MySQL: Consejos y técnicas
La mayoría de los desarrolladores no tienen un diseño de fondo en relación con MySQL, así que cuando crean su base de datos, es ineficiente, con errores y poco fiable.
Bien por la creación de las especificaciones para su base de datos MySQL, su aplicación será eficiente y confiable, ya que responde a las normas de la industria para la creación de una adecuada base de datos.
Usted obtiene los siguientes beneficios al diseñar de forma adecuada una base de datos MySQL:
* Velocidad - Dado que la base de datos es eficiente y utiliza los datos correctos y tipos de caracteres de longitud, mejorará la velocidad de consulta.
* Seguridad - La seguridad mejora, ya que permiten a los datos específicos se almacenan en la base de datos MySQL, y nada más.
* Eficiencia del espacio de almacenamiento - Ya que está desarrollando una base de datos que es puramente basado en especificaciones de los datos, no habrá bytes o caracteres innecesarios almacenados en la base de datos MySQL. Esto ahorra espacio en disco.
Este tutorial se centrará en el diseño de una base de datos MySQL para aplicaciones web de PHP y la utilización de la interfaz de phpMyAdmin. Abajo están los requisitos para que pueda diseñar su base de datos (a partir de cero):
* XAMPP, para las pruebas y el acceso a scripts PHP phpMyAdmin.
* Lista de campos y sus tipos de datos. Necesitará un completo entendimiento de los datos para ser procesados y almacenados.
* El número de caracteres en cada pieza de datos que deben almacenarse.
Tenga en cuenta que este tutorial ha sido probado en la versión 5.0.67 de MySQL. Diferentes versiones de MySQL podría afectar el diseño de su base de datos, pero básicamente el concepto será el mismo.
Este tutorial también asume que el formato de tabla que se utilizará será MyISAM, que es la tabla por defecto para MySQL.
Asignando un nombre a la base de datos, tablas y nombres de campo Tipos de datos
Para ayudarle a comprender fácilmente los procesos, vamos a presentar la guía de aprendizaje con una aplicación de la vida real. Vamos a suponer que se da una tarea de diseñar una aplicación web que recibirá las quejas de los clientes en su sitio web.
Durante su sesión de tormentas de ideas, usted arribó con los siguientes datos que deben ser recogidos en el formulario web cada vez que haya una queja relacionada con el cliente:
* Nombre del cliente (Ejemplo: Juan Pérez).
* Precio de venta (Ejemplo: 34878,456). Esto no debería exceder de 4 dígitos antes de la coma decimal y permitir sólo 3 dígitos después del punto decimal. Además, los valores almacenados no deben ser negativos.
* Fecha de compra (con este formato: 2009-05-16, o aaaa-mm-dd).
* Clave de serie del producto (sólo entero, no deberían ser los valores negativos, de hasta 5 dígitos, utilice ceros para rellenar en caso de tener menos de 5 dígitos) Ejemplo: 00567, 56453, 00021.
* Detalles de queja (aceptar de entrada de texto de cualquier longitud).
* Fecha de recepción de denuncia (muestra la hora actual y la fecha en que se envió el formulario).
Ahora que hemos definido claramente los datos que deben ser recogidos, el siguiente paso es asignar un nombre a la base de datos y la tabla.
De acuerdo con la directrices de MySQL, el nombre de base de datos, nombre de tabla y nombres de campo no debe superar los 64 caracteres de longitud, e idealmente no debe contener caracteres especiales.
Por simplicidad podemos nombrar la base de datos "customercomplaint", y, a continuación, podemos nombrar la tabla de base de datos "customertable".
Cuanto más se pueda simplificar la denominación, será más conveniente para utilizarla en los correspondientes scripts PHP.
Evite el uso de mayúsculas en nombres de la base de datos, nombres de campos y tablas, porque puede crear confusión al formular las consultas desde PHP a la base de datos.
Para los correspondientes tipos de datos para cada una de esas variables, figura a continuación es una captura de pantalla de los tipos de datos disponibles para MySQL:
Los tipos de datos de MySQL más comúnmente utilizados son VARCHAR, DECIMAL, DATE, INT, TEXT y TIMESTAMP.
VARCHAR es de uso común para cadenas de longitud variable de hasta 255 caracteres. Si usted debe almacenar y procesar datos de naturaleza alfanumérica, este tipo de datos es el más adecuado.
Los ejemplos más comunes de datos reales que se ajusten a este tipo incluyen nombres de personas, códigos postales, números de teléfono y cualquier tipo de datos alfanuméricos que no exceda de 255 caracteres de longitud. No utilice el tipo VARCHAR al almacenar números que se utilizarán para cálculo, ya que podría causar algunos problemas relacionados con la computación. En otras palabras, podría afectar la exactitud e integridad de la computación.
DECIMAL es adecuado para almacenar los números que se utilizarán para cálculo. En MySQL, se puede especificar el número de dígitos en números permitidos para ser almacenados (incluyendo el número de decimales). También podemos especificar si se permiten valores negativos.
La asignación de la longitud adecuada del tipo DECIMAL puede ser complicada. Por ejemplo, si usted necesita para almacenar sólo 5 dígitos antes del punto decimal y permitir sólo 3 dígitos después del punto decimal, la longitud adecuada / valores que se configuran en la base de datos es:
Decimal (5 +3, 3) o decimal (8, 3)
Ejemplos de números permitidos: 12345.678, 56872.690, 11.6 y 12.568
Los siguientes números, sin embargo, retornarán error: 128781.1, 8972865.231
El tipo de datos DATE es recomendado para el almacenamiento de fechas. El formato de fecha predeterminado para MySQL es 2009-05-18 [año-mes-día].
El tipo de datos INT se recomienda si va a guardar números que no contengan un punto decimal. INT significa entero. Una vez más, como en DECIMAL, especificar correctamente INT en MySQL puede ser complicado.
Hay varios tipos entero que usted necesita conocer, así como el número máximo de dígitos que pueden tener:
* TINYINT - Este tipo aceptará hasta 3 dígitos como máximo.
* SMALLINT - Permite un máximo de 5 dígitos como máximo.
* Este tipo aceptará un máximo de 8 dígitos como máximo.
* INT - Este tipo le dejará ir hasta 10 dígitos.
* BIGINT - Si va a permitir hasta 20 dígitos, este es recomendable.
TEXT es un tipo de datos muy útil que acepta entradas de texto, una mezcla de cualquier tipo de caracteres que conforman el contenido de los formularios web. VARCHAR sólo puede aceptar hasta 255 caracteres, pero TEXT puede ser usado para almacenar datos que supere esa cantidad.
Cuando el tipo de datos TIMESTAMP es seleccionado, mediante la verificación de "CURRENT_TIMESTAMP" como por defecto, MySQL regresa automáticamente la fecha y hora para cada inserción de datos.