¿QUÉ ES UN SCHEMA EN UNA BASE DE DATOS MYSQL?
Un Schema es una estructura lógica que organiza todos los objetos de una base de datos:- Tablas
- Vistas
- Procedimientos almacenados y Funciones
- Índices
- Etc...
¿Para qué sirve un Schema?
Los schemas cumplen varias funciones clave:- Organizar tablas y objetos por módulos o áreas funcionales.
- Separar diferentes módulos de una misma aplicación (ventas, inventario, administración, etc.).
- Facilitar la administración de permisos y seguridad.
- Controlar el acceso de usuarios a solo ciertas partes de la base de datos.
Ejemplo práctico
En lugar de tener todo mezclado en una sola base de datos. Se tienen las tablas- usuarios
- ventas
- productos
- facturas
- Schema "ventas": contiene las tablas:
- clientes
- pedidos
- facturas
- Schema "inventario": contiene las tablas:
- productos
- categorías
- proveedores
Schema vs Base de Datos: ¿Son lo mismo?
Ejemplo completo
-- Crear la base de datos principal
CREATE SCHEMA mi_empresa;
-- Usar el schema
USE mi_empresa;
-- Crear schema para ventas
CREATE SCHEMA ventas;
-- Crear schema para inventario
CREATE SCHEMA inventario;
-- Tabla de clientes dentro del schema 'ventas'
CREATE TABLE ventas.clientes (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL
);
-- Tabla de productos dentro del schema 'inventario'
CREATE TABLE inventario.productos (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100),
stock INT DEFAULT 0
);
-- Tabla de pedidos que referencia al schema ventas
CREATE TABLE ventas.pedidos (
id INT AUTO_INCREMENT PRIMARY KEY,
cliente_id INT,
FOREIGN KEY (cliente_id) REFERENCES ventas.clientes(id)
);