Al desarrollar un proyecto de software, uno de los aspectos más importantes, fundamentales e intrínsecos es un esquema de base de datos debidamente estructurado. Es el equivalente a cuando se construye una casa que necesita para asegurarse de que los cimientos estén colocados correctamente, de lo contrario, las posibilidades de construir una casa de calidad se reducen drásticamente.

Sorprendentemente más fácil de lo que uno pensaría, aprendamos las diversas facetas que se utilizan para escribir un esquema de base de datos bien diseñado.

Sintaxis de CREATE TABLE

Para empezar, abre tu favorito editor de texto. La creación de un esquema de base de datos no requiere más que un archivo de texto sin formato. Una base de datos consta de varias tablas, cada una de las cuales consta de columnas, y la sintaxis CREATE TABLE se utiliza para crear una única tabla. Aquí tienes un ejemplo básico:


Usuarios de CREATE TABLE (
id INT NO NULO,
is_active TINY INT NOT NULL,
nombre_completo VAR CHAR (100) NOT NULL,
correo electrónico VARCHAR (100) NOT NULL
);
instagram viewer

Como puede ver, esto creará una tabla de base de datos llamada usuarios que consta de cuatro columnas. Esta debería ser una declaración SQL bastante sencilla que comience con CREAR MESA, seguido del nombre de las tablas de la base de datos, luego entre paréntesis las columnas de la tabla separadas por una coma.

Utilice tipos de columna correctos

Como se muestra arriba, las columnas que compondrán la tabla están separadas por comas. Cada definición de columna se compone de las mismas tres partes:

TIPO DE COL_NAME [OPCIONES]

El nombre de la columna, seguido del tipo de columna, luego cualquier parámetro opcional. Entraremos en los parámetros opcionales más adelante, pero concentrándonos en el tipo de columna, a continuación se enumeran los tipos de columna más utilizados disponibles:

A todos los efectos, los tipos de columna anteriores son todo lo que necesita para escribir esquemas de base de datos mySQL bien construidos.

Definir opciones de columna

Al definir columnas, también hay varias opciones que puede especificar. A continuación se muestra otro ejemplo de la CREAR MESA declaración:


Usuarios de CREATE TABLE (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
nombre de usuario VARCHAR (100) NOT NULL ÚNICO,
estado ENUM ('activo', 'inactivo') NOT NULL DEFAULT 'activo',
saldo DECIMAL (8,2) NO NULO POR DEFECTO 0,
date_of_birth DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

Lo anterior puede parecer un poco abrumador, pero no se preocupe, es bastante simple. Desglosado, esto es lo que está sucediendo en la declaración anterior:

  • Siempre debe usar NOT NULL en todas las columnas posibles para ayudar con la velocidad y el rendimiento de la tabla. Esto simplemente especifica que la columna no se puede dejar vacía / nula cuando se inserta una fila.
  • Intente siempre mantener el tamaño de la columna lo más pequeño posible de manera realista, ya que ayuda a mejorar la velocidad y el rendimiento.
  • los identificación La columna es un número entero, también es la clave principal de la tabla, lo que significa que es única y se incrementará en uno cada vez que se inserte un registro. Por lo general, esto debe usarse en todas las tablas que cree para que pueda hacer referencia fácilmente a cualquier fila dentro de la tabla.
  • los estado La columna es ENUM y debe tener un valor de "activo" o "inactivo". Si no se especifica ningún valor, una nueva fila comenzará con el estado de "activo".
  • los equilibrio La columna comienza en 0 para cada nueva fila y es una cantidad formateada con dos decimales.
  • los fecha de nacimiento La columna es simplemente una FECHA, pero también permite un valor nulo ya que es posible que la fecha de nacimiento no se conozca en el momento de la creación.
  • Por último, el Creado en La columna es un TIMESTAMP y su valor predeterminado es la hora actual cuando se insertó la fila.

Lo anterior es un ejemplo de una tabla de base de datos bien estructurada y debería usarse como ejemplo en el futuro.

Una de las mayores ventajas de utilizar bases de datos relacionales como mySQL es su excelente soporte para restricciones de clave externa y en cascada. Esto es cuando vincula dos tablas por una columna, formando una relación padre-hijo, por lo que cuando se elimina la fila principal, las filas secundarias necesarias también se eliminan automáticamente.

He aquí un ejemplo:


Usuarios de CREATE TABLE (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
nombre de usuario VARCHAR (100) NOT NULL ÚNICO,
nombre_completo VARCHAR (100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) motor = InnoDB;
Pedidos de CREAR TABLA (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userid INT NO NULO,
monto DECIMAL (8,2) NO NULO,
nombre_producto VARCHAR (200) NOT NULL,
LLAVE EXTRANJERA (ID de usuario) REFERENCIAS usuarios (ID) EN ELIMINAR CASCADA
) motor = InnoDB;

Notará la cláusula FOREIGN KEY como última línea. Esta línea simplemente indica que esta tabla contiene filas secundarias que están vinculadas por el ID de usuario columna a su fila principal, que es la identificación columna de la usuarios mesa. Lo que esto significa es que cada vez que se elimina una fila del usuarios tabla, mySQL eliminará automáticamente todas las filas correspondientes de la pedidos tabla que ayuda a garantizar la integridad estructural dentro de su base de datos.

También tenga en cuenta el motor = InnoDB al final de la declaración anterior. Aunque InnoDB es ahora el tipo de tabla mySQL predeterminado, no siempre lo fue, por lo que esto debería agregarse solo para estar seguro, ya que la cascada solo funciona con tablas InnoDB.

Diseñe con confianza

Ahora está en camino de diseñar esquemas de base de datos mySQL sólidos y bien estructurados. Con el conocimiento anterior, ahora puede escribir esquemas bien organizados que brinden rendimiento e integridad estructural.

Con su esquema en su lugar, asegúrese de saber cómo usarlo con estos comandos SQL esenciales.

Correo electrónico
Cómo consultar varias tablas de bases de datos a la vez con uniones SQL

Aprenda a utilizar las uniones SQL para agilizar las consultas, ahorrar tiempo y sentirse como un usuario avanzado de SQL.

Temas relacionados
  • Sin especificar
Sobre el Autor
Matt Dizak (18 Artículos publicados)Más de Matt Dizak

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Un paso más…!

Confirme su dirección de correo electrónico en el correo electrónico que le acabamos de enviar.

.