BEGIN; CREATE TABLE "seguimiento_oficios_dependencia" ( "id" serial NOT NULL PRIMARY KEY, "clave" varchar(50) NOT NULL, "nombre" varchar(150) NOT NULL ) ; CREATE TABLE "seguimiento_oficios_direccion" ( "id" serial NOT NULL PRIMARY KEY, "dependencia_id" integer NOT NULL REFERENCES "seguimiento_oficios_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED, "clave" varchar(50) NOT NULL, "nombre" varchar(100) NOT NULL ) ; CREATE TABLE "seguimiento_oficios_tipodocumento" ( "id" serial NOT NULL PRIMARY KEY, "nombre" varchar(50) NOT NULL ) ; CREATE TABLE "seguimiento_oficios_puestos" ( "id" serial NOT NULL PRIMARY KEY, "nombre" varchar(100) NOT NULL, UNIQUE ("nombre") ) ; CREATE TABLE "seguimiento_oficios_estatus" ( "id" serial NOT NULL PRIMARY KEY, "clave" varchar(50) NOT NULL, "nombre" varchar(50) NOT NULL, "color" varchar(17) NOT NULL ) ; CREATE TABLE "seguimiento_oficios_titulos" ( "id" serial NOT NULL PRIMARY KEY, "monograma" varchar(50) NOT NULL, "nombre" varchar(50) NOT NULL ) ; CREATE TABLE "seguimiento_oficios_personas" ( "id" serial NOT NULL PRIMARY KEY, "nombre" varchar(50) NOT NULL, "apellidopaterno" varchar(50) NOT NULL, "apellidomaterno" varchar(50) NOT NULL, "puesto_id" integer NOT NULL REFERENCES "seguimiento_oficios_puestos" ("id") DEFERRABLE INITIALLY DEFERRED, "titulo_id" integer NOT NULL REFERENCES "seguimiento_oficios_titulos" ("id") DEFERRABLE INITIALLY DEFERRED, "direccion_id" integer NOT NULL REFERENCES "seguimiento_oficios_direccion" ("id") DEFERRABLE INITIALLY DEFERRED ) ; CREATE TABLE "seguimiento_oficios_oficios" ( "id" serial NOT NULL PRIMARY KEY, "folio_interno" varchar(70) NOT NULL, "fecha" date NOT NULL, "fecha_captura" timestamp with time zone NOT NULL, "fecha_oficio" date, "no_oficio" varchar(70) NOT NULL, "direccion_id" integer NOT NULL REFERENCES "seguimiento_oficios_direccion" ("id") DEFERRABLE INITIALLY DEFERRED, "asunto" varchar(70) NOT NULL, "destinatario_id" integer NOT NULL REFERENCES "seguimiento_oficios_personas" ("id") DEFERRABLE INITIALLY DEFERRED, "remitente_id" integer NOT NULL REFERENCES "seguimiento_oficios_personas" ("id") DEFERRABLE INITIALLY DEFERRED, "archivo" varchar(100) NOT NULL, "tipo_documento_id" integer NOT NULL REFERENCES "seguimiento_oficios_tipodocumento" ("id") DEFERRABLE INITIALLY DEFERRED, "estatus_id" integer NOT NULL REFERENCES "seguimiento_oficios_estatus" ("id") DEFERRABLE INITIALLY DEFERRED, "usuario_id" integer NOT NULL REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED, "observaciones" text, "fecha_ultima_modificacion" timestamp with time zone NOT NULL, UNIQUE ("no_oficio") ) ; CREATE TABLE "seguimiento_oficios_asignacion_direccion" ( "id" serial NOT NULL PRIMARY KEY, "asignacion_id" integer NOT NULL, "direccion_id" integer NOT NULL REFERENCES "seguimiento_oficios_direccion" ("id") DEFERRABLE INITIALLY DEFERRED, UNIQUE ("asignacion_id", "direccion_id") ) ; CREATE TABLE "seguimiento_oficios_asignacion" ( "id" serial NOT NULL PRIMARY KEY, "oficio_id" integer NOT NULL REFERENCES "seguimiento_oficios_oficios" ("id") DEFERRABLE INITIALLY DEFERRED, "asigna_id" integer NOT NULL REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED, "observaciones" text, "fecha" timestamp with time zone NOT NULL ) ; ALTER TABLE "seguimiento_oficios_asignacion_direccion" ADD CONSTRAINT "asignacion_id_refs_id_c48d5b73" FOREIGN KEY ("asignacion_id") REFERENCES "seguimiento_oficios_asignacion" ("id") DEFERRABLE INITIALLY DEFERRED; CREATE TABLE "seguimiento_oficios_bitacora" ( "id" serial NOT NULL PRIMARY KEY, "fecha" timestamp with time zone NOT NULL, "oficio_id" integer NOT NULL REFERENCES "seguimiento_oficios_oficios" ("id") DEFERRABLE INITIALLY DEFERRED, "estatus_id" integer NOT NULL REFERENCES "seguimiento_oficios_estatus" ("id") DEFERRABLE INITIALLY DEFERRED, "usuario_id" integer NOT NULL REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED, "observaciones" text ) ; CREATE TABLE "seguimiento_oficios_tipo_usuario" ( "id" serial NOT NULL PRIMARY KEY, "nombre" varchar(50) NOT NULL ) ; CREATE TABLE "seguimiento_oficios_perfil" ( "id" serial NOT NULL PRIMARY KEY, "tipo_id" integer NOT NULL REFERENCES "seguimiento_oficios_tipo_usuario" ("id") DEFERRABLE INITIALLY DEFERRED, "usuario_id" integer NOT NULL REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED, "direccion_id" integer REFERENCES "seguimiento_oficios_direccion" ("id") DEFERRABLE INITIALLY DEFERRED, "dependencia_id" integer REFERENCES "seguimiento_oficios_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED ) ; CREATE INDEX "seguimiento_oficios_direccion_dependencia_id" ON "seguimiento_oficios_direccion" ("dependencia_id"); CREATE INDEX "seguimiento_oficios_personas_puesto_id" ON "seguimiento_oficios_personas" ("puesto_id"); CREATE INDEX "seguimiento_oficios_personas_titulo_id" ON "seguimiento_oficios_personas" ("titulo_id"); CREATE INDEX "seguimiento_oficios_personas_direccion_id" ON "seguimiento_oficios_personas" ("direccion_id"); CREATE INDEX "seguimiento_oficios_oficios_direccion_id" ON "seguimiento_oficios_oficios" ("direccion_id"); CREATE INDEX "seguimiento_oficios_oficios_destinatario_id" ON "seguimiento_oficios_oficios" ("destinatario_id"); CREATE INDEX "seguimiento_oficios_oficios_remitente_id" ON "seguimiento_oficios_oficios" ("remitente_id"); CREATE INDEX "seguimiento_oficios_oficios_tipo_documento_id" ON "seguimiento_oficios_oficios" ("tipo_documento_id"); CREATE INDEX "seguimiento_oficios_oficios_estatus_id" ON "seguimiento_oficios_oficios" ("estatus_id"); CREATE INDEX "seguimiento_oficios_oficios_usuario_id" ON "seguimiento_oficios_oficios" ("usuario_id"); CREATE INDEX "seguimiento_oficios_asignacion_oficio_id" ON "seguimiento_oficios_asignacion" ("oficio_id"); CREATE INDEX "seguimiento_oficios_asignacion_asigna_id" ON "seguimiento_oficios_asignacion" ("asigna_id"); CREATE INDEX "seguimiento_oficios_bitacora_oficio_id" ON "seguimiento_oficios_bitacora" ("oficio_id"); CREATE INDEX "seguimiento_oficios_bitacora_estatus_id" ON "seguimiento_oficios_bitacora" ("estatus_id"); CREATE INDEX "seguimiento_oficios_bitacora_usuario_id" ON "seguimiento_oficios_bitacora" ("usuario_id"); CREATE INDEX "seguimiento_oficios_perfil_tipo_id" ON "seguimiento_oficios_perfil" ("tipo_id"); CREATE INDEX "seguimiento_oficios_perfil_usuario_id" ON "seguimiento_oficios_perfil" ("usuario_id"); CREATE INDEX "seguimiento_oficios_perfil_direccion_id" ON "seguimiento_oficios_perfil" ("direccion_id"); CREATE INDEX "seguimiento_oficios_perfil_dependencia_id" ON "seguimiento_oficios_perfil" ("dependencia_id"); COMMIT;