Primer version funcional
This commit is contained in:
19
database/migration_expense_concepts.sql
Executable file
19
database/migration_expense_concepts.sql
Executable file
@@ -0,0 +1,19 @@
|
||||
-- Migración para relacionar gastos con conceptos globales
|
||||
-- Permite que un gasto se asocie a uno o varios conceptos globales
|
||||
-- Esto permite calcular el balance correcto por concepto: (Recaudado - Gastado)
|
||||
|
||||
-- Tabla de relación muchos-a-muchos: gastos <-> conceptos globales
|
||||
CREATE TABLE IF NOT EXISTS `expense_concept_collections` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`expense_id` INT NOT NULL,
|
||||
`concept_id` INT NOT NULL,
|
||||
`amount` DECIMAL(10,2) NOT NULL COMMENT 'Monto del gasto asignado a este concepto',
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`expense_id`) REFERENCES `expenses`(`id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`concept_id`) REFERENCES `finance_collection_concepts`(`id`) ON DELETE CASCADE,
|
||||
UNIQUE KEY `unique_expense_concept` (`expense_id`, `concept_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- Índice para optimizar consultas
|
||||
CREATE INDEX idx_expense_concept_expense ON expense_concept_collections(expense_id);
|
||||
CREATE INDEX idx_expense_concept_concept ON expense_concept_collections(concept_id);
|
||||
Reference in New Issue
Block a user