Sindbad~EG File Manager

Current Path : /home/copmadinaarea/thecopmadinaarea.org/reports/database/
Upload File :
Current File : /home/copmadinaarea/thecopmadinaarea.org/reports/database/leadership_table.sql

-- Leadership Data Table for Demography 1
-- Stores leadership statistics for assemblies

CREATE TABLE IF NOT EXISTS leadership_data (
    id INT AUTO_INCREMENT PRIMARY KEY,
    area_id INT NOT NULL,
    district_id INT NOT NULL,
    assembly_id INT NOT NULL,
    
    -- Leadership counts
    elders INT DEFAULT 0,
    deacons INT DEFAULT 0,
    deaconesses INT DEFAULT 0,
    leaders INT DEFAULT 0,
    ministers INT DEFAULT 0,
    ministers_wives INT DEFAULT 0,
    
    -- Auto-calculated total
    total_leadership INT GENERATED ALWAYS AS (
        elders + deacons + deaconesses + leaders + ministers + ministers_wives
    ) STORED,
    
    -- Audit fields
    created_by INT NOT NULL,
    updated_by INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    -- Foreign keys
    FOREIGN KEY (area_id) REFERENCES areas(id) ON DELETE CASCADE,
    FOREIGN KEY (district_id) REFERENCES districts(id) ON DELETE CASCADE,
    FOREIGN KEY (assembly_id) REFERENCES assemblies(id) ON DELETE CASCADE,
    FOREIGN KEY (created_by) REFERENCES users(id),
    FOREIGN KEY (updated_by) REFERENCES users(id),
    
    -- Unique constraint: one leadership record per assembly
    UNIQUE KEY unique_assembly_leadership (assembly_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Create indexes for better performance
CREATE INDEX idx_leadership_area ON leadership_data(area_id);
CREATE INDEX idx_leadership_district ON leadership_data(district_id);
CREATE INDEX idx_leadership_assembly ON leadership_data(assembly_id);
CREATE INDEX idx_leadership_created_at ON leadership_data(created_at);

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists