Mantenimiento de Miembros
This commit is contained in:
52
RS_system/sql_miembros.sql
Normal file
52
RS_system/sql_miembros.sql
Normal file
@@ -0,0 +1,52 @@
|
||||
-- =====================================================
|
||||
-- Script: Church Members Module Database Schema (Refactored)
|
||||
-- Description: Creates tables for work groups and members linked to personas
|
||||
-- =====================================================
|
||||
|
||||
-- Table: grupos_trabajo
|
||||
CREATE TABLE IF NOT EXISTS public.grupos_trabajo
|
||||
(
|
||||
id bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
|
||||
nombre character varying(100) NOT NULL,
|
||||
descripcion text,
|
||||
activo boolean NOT NULL DEFAULT true,
|
||||
creado_en timestamp with time zone NOT NULL DEFAULT NOW(),
|
||||
actualizado_en timestamp with time zone NOT NULL DEFAULT NOW(),
|
||||
CONSTRAINT grupos_trabajo_pkey PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
-- Table: miembros
|
||||
-- Drop if exists to handle the schema change during development
|
||||
DROP TABLE IF EXISTS public.miembros;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.miembros
|
||||
(
|
||||
id bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
|
||||
persona_id bigint NOT NULL,
|
||||
bautizado_espiritu_santo boolean NOT NULL DEFAULT false,
|
||||
fecha_ingreso_congregacion date,
|
||||
telefono_emergencia character varying(20),
|
||||
grupo_trabajo_id bigint,
|
||||
activo boolean NOT NULL DEFAULT true,
|
||||
eliminado boolean NOT NULL DEFAULT false,
|
||||
creado_en timestamp with time zone NOT NULL DEFAULT NOW(),
|
||||
actualizado_en timestamp with time zone NOT NULL DEFAULT NOW(),
|
||||
creado_por character varying(100),
|
||||
CONSTRAINT miembros_pkey PRIMARY KEY (id),
|
||||
CONSTRAINT fk_miembros_persona FOREIGN KEY (persona_id)
|
||||
REFERENCES public.personas (id),
|
||||
CONSTRAINT fk_miembros_grupo_trabajo FOREIGN KEY (grupo_trabajo_id)
|
||||
REFERENCES public.grupos_trabajo (id)
|
||||
);
|
||||
|
||||
-- Indexes for performance
|
||||
CREATE INDEX IF NOT EXISTS idx_miembros_persona ON public.miembros(persona_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_miembros_grupo_trabajo ON public.miembros(grupo_trabajo_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_miembros_activo ON public.miembros(activo, eliminado);
|
||||
|
||||
-- Initial work groups data
|
||||
INSERT INTO public.grupos_trabajo (nombre, descripcion) VALUES
|
||||
('Concilio Misionero Femenil', 'Grupo de trabajo de mujeres misioneras'),
|
||||
('Fraternidad de Varones', 'Grupo de trabajo de varones de la iglesia'),
|
||||
('Embajadores de Cristo', 'Grupo de jóvenes embajadores')
|
||||
ON CONFLICT DO NOTHING;
|
||||
Reference in New Issue
Block a user