79275648

Date: 2024-12-12 15:24:46
Score: 2.5
Natty:
Report link

-- Crear la base de datos CREATE DATABASE IF NOT EXISTS pagalo_pe; USE pagalo_pe;

-- Tabla: Roles CREATE TABLE Roles ( id_rol INT AUTO_INCREMENT PRIMARY KEY, nombre_rol VARCHAR(50) NOT NULL UNIQUE, descripcion TEXT );

-- Insertar roles comunes INSERT INTO Roles (nombre_rol, descripcion) VALUES ('Admin', 'Administrador del sistema'), ('Cliente', 'Usuario que realiza pagos y trámites');

-- Tabla: Direcciones CREATE TABLE Direcciones ( id_direccion INT AUTO_INCREMENT PRIMARY KEY, calle VARCHAR(100), ciudad VARCHAR(50), estado VARCHAR(50), codigo_postal VARCHAR(20), pais VARCHAR(50) );

-- Tabla: Usuarios CREATE TABLE Usuarios ( id_usuario INT AUTO_INCREMENT PRIMARY KEY, nombre_completo VARCHAR(100) NOT NULL, correo_electronico VARCHAR(100) NOT NULL UNIQUE, numero_celular VARCHAR(20) NOT NULL, tipo_documento ENUM('DNI', 'Pasaporte') NOT NULL, numero_documento VARCHAR(50) NOT NULL UNIQUE, contraseña VARCHAR(255) NOT NULL, fecha_registro TIMESTAMP DEFAULT CURRENT_TIMESTAMP, rol_id INT NOT NULL, direccion_id INT, FOREIGN KEY (rol_id) REFERENCES Roles(id_rol), FOREIGN KEY (direccion_id) REFERENCES Direcciones(id_direccion) );

-- Tabla: Entidades CREATE TABLE Entidades ( id_entidad INT AUTO_INCREMENT PRIMARY KEY, nombre_entidad VARCHAR(100) NOT NULL, descripcion TEXT, contacto_email VARCHAR(100), contacto_telefono VARCHAR(20) );

-- Tabla: Servicios CREATE TABLE Servicios ( id_servicio INT AUTO_INCREMENT PRIMARY KEY, id_entidad INT NOT NULL, nombre_servicio VARCHAR(100) NOT NULL, costo DECIMAL(10,2) NOT NULL, descripcion TEXT, tiempo_estimado_procesamiento VARCHAR(50), FOREIGN KEY (id_entidad) REFERENCES Entidades(id_entidad) ON DELETE CASCADE );

-- Tabla: Metodos_de_Pago CREATE TABLE Metodos_de_Pago ( id_metodo INT AUTO_INCREMENT PRIMARY KEY, descripcion VARCHAR(50) NOT NULL );

INSERT INTO Metodos_de_Pago (descripcion) VALUES ('Tarjeta de Crédito'), ('Tarjeta de Débito'), ('Efectivo'), ('Transferencia Bancaria'), ('PayPal'), ('Criptomonedas');

-- Tabla: Pagos CREATE TABLE Pagos ( id_pago INT AUTO_INCREMENT PRIMARY KEY, id_usuario INT NOT NULL, id_servicio INT NOT NULL, monto_pagado DECIMAL(10,2) NOT NULL, fecha_pago TIMESTAMP DEFAULT CURRENT_TIMESTAMP, id_metodo INT NOT NULL, estado_pago ENUM('Confirmado', 'Pendiente', 'Rechazado') DEFAULT 'Pendiente', numero_referencia VARCHAR(100) UNIQUE NOT NULL, FOREIGN KEY (id_usuario) REFERENCES Usuarios(id_usuario) ON DELETE CASCADE, FOREIGN KEY (id_servicio) REFERENCES Servicios(id_servicio) ON DELETE CASCADE, FOREIGN KEY (id_metodo) REFERENCES Metodos_de_Pago(id_metodo) ON DELETE RESTRICT );

-- Tabla: Notificaciones CREATE TABLE Notificaciones ( id_notificacion INT AUTO_INCREMENT PRIMARY KEY, id_usuario INT NOT NULL, mensaje TEXT NOT NULL, fecha_hora TIMESTAMP DEFAULT CURRENT_TIMESTAMP, leida BOOLEAN DEFAULT FALSE, FOREIGN KEY (id_usuario) REFERENCES Usuarios(id_usuario) ON DELETE CASCADE );

-- Tabla: Soporte_al_Cliente CREATE TABLE Soporte_al_Cliente ( id_soporte INT AUTO_INCREMENT PRIMARY KEY, id_usuario INT NOT NULL, motivo_contacto VARCHAR(255) NOT NULL, fecha_hora_contacto TIMESTAMP DEFAULT CURRENT_TIMESTAMP, respuesta_soporte TEXT, estado_soporte ENUM('Abierto', 'En Proceso', 'Cerrado') DEFAULT 'Abierto', FOREIGN KEY (id_usuario) REFERENCES Usuarios(id_usuario) ON DELETE CASCADE );

-- Tabla: Facturas (Opcional) CREATE TABLE Facturas ( id_factura INT AUTO_INCREMENT PRIMARY KEY, id_pago INT NOT NULL, fecha_emision TIMESTAMP DEFAULT CURRENT_TIMESTAMP, total DECIMAL(10,2) NOT NULL, impuestos DECIMAL(10,2) NOT NULL, direccion_facturacion_id INT, FOREIGN KEY (id_pago) REFERENCES Pagos(id_pago) ON DELETE CASCADE, FOREIGN KEY (direccion_facturacion_id) REFERENCES Direcciones(id_direccion) );

Reasons:
  • Blacklisted phrase (2): Crear
  • Long answer (-1):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Cuenta Anónima YT