clinica_terapeutica.sql
8 Tablas Relacionadas
CREATE DATABASE IF NOT EXISTS clinica_terapeutica;
USE clinica_terapeutica;
-- 1. TABLA: Moneda
CREATE TABLE Moneda (
codmon VARCHAR(10) NOT NULL,
tasa DECIMAL(18, 4) NOT NULL COMMENT 'Tasa de cambio respecto a la moneda base (USD)',
aplica VARCHAR(20) NOT NULL COMMENT 'Operación: MULTIPLICAR / DIVIDIR',
PRIMARY KEY (codmon)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 2. TABLA: forma-pago
CREATE TABLE `forma-pago` (
codpag VARCHAR(15) NOT NULL,
despag VARCHAR(50) NOT NULL,
codmon VARCHAR(10) NOT NULL,
PRIMARY KEY (codpag),
CONSTRAINT fk_formapago_moneda FOREIGN KEY (codmon) REFERENCES Moneda (codmon)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 3. TABLA: cliente
CREATE TABLE cliente (
codcli VARCHAR(20) NOT NULL,
nomcli VARCHAR(100) NOT NULL,
telcli VARCHAR(20) DEFAULT NULL,
PRIMARY KEY (codcli)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 4. TABLA: servicios
CREATE TABLE servicios (
codart VARCHAR(10) NOT NULL,
desart VARCHAR(150) NOT NULL,
precio DECIMAL(12, 2) NOT NULL COMMENT 'Precio fijado en moneda base estándar (USD)',
`por-comision` DECIMAL(5, 2) NOT NULL COMMENT 'Porcentaje de comisión para el médico',
PRIMARY KEY (codart)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 5. TABLA: medico
CREATE TABLE medico (
codmed VARCHAR(20) NOT NULL,
nommed VARCHAR(100) NOT NULL,
PRIMARY KEY (codmed)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 6. TABLA: cargos
CREATE TABLE cargos (
id_cargo INT NOT NULL AUTO_INCREMENT,
codcli VARCHAR(20) NOT NULL,
codart VARCHAR(10) NOT NULL,
fecha DATETIME NOT NULL,
cantidad INT NOT NULL DEFAULT 1,
precio DECIMAL(12, 2) NOT NULL,
monto DECIMAL(12, 2) NOT NULL COMMENT 'cantidad * precio',
pagado DECIMAL(12, 2) NOT NULL DEFAULT 0.00,
estatus VARCHAR(15) NOT NULL DEFAULT 'PENDIENTE' COMMENT 'PENDIENTE, PAGADO, EXONERADO',
asistencias INT NOT NULL DEFAULT 0 COMMENT 'Contador interno opcional de asistencias tomadas',
PRIMARY KEY (id_cargo),
CONSTRAINT fk_cargos_cliente FOREIGN KEY (codcli) REFERENCES cliente (codcli),
CONSTRAINT fk_cargos_servicios FOREIGN KEY (codart) REFERENCES servicios (codart)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 7. TABLA: asistencia
CREATE TABLE asistencia (
id INT NOT NULL AUTO_INCREMENT,
codcli VARCHAR(20) NOT NULL,
fecha DATETIME NOT NULL,
codmed VARCHAR(20) NOT NULL,
id_cargo INT DEFAULT NULL COMMENT 'Relación al cargo del plan o consulta',
estatus VARCHAR(20) NOT NULL DEFAULT 'ASISTIO' COMMENT 'ASISTIO, NO ASISTIO, CANCELADA',
codart VARCHAR(10) DEFAULT NULL,
PRIMARY KEY (id),
CONSTRAINT fk_asistencia_cliente FOREIGN KEY (codcli) REFERENCES cliente (codcli),
CONSTRAINT fk_asistencia_medico FOREIGN KEY (codmed) REFERENCES medico (codmed),
CONSTRAINT fk_asistencia_cargos FOREIGN KEY (id_cargo) REFERENCES cargos (id_cargo),
CONSTRAINT fk_asistencia_servicios FOREIGN KEY (codart) REFERENCES servicios (codart)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 8. TABLA: pagos_pac
CREATE TABLE pagos_pac (
id_pago INT NOT NULL AUTO_INCREMENT,
fecha DATETIME NOT NULL,
id_cargo INT NOT NULL,
codpag VARCHAR(15) NOT NULL,
codmon VARCHAR(10) NOT NULL,
montopag DECIMAL(12, 2) NOT NULL COMMENT 'Monto amortizado al cargo en moneda base (USD)',
fmoneda DECIMAL(18, 4) NOT NULL COMMENT 'Tasa de cambio del día en que se pagó',
pmoneda DECIMAL(12, 2) NOT NULL COMMENT 'Monto físico real entregado en la moneda inicial',
PRIMARY KEY (id_pago),
CONSTRAINT fk_pagos_cargos FOREIGN KEY (id_cargo) REFERENCES cargos (id_cargo),
CONSTRAINT fk_pagos_formapago FOREIGN KEY (codpag) REFERENCES `forma-pago` (codpag),
CONSTRAINT fk_pagos_moneda FOREIGN KEY (codmon) REFERENCES Moneda (codmon)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;