Sindbad~EG File Manager
-- 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