ilab_gestion_backend/docs/database/01_create_tables.sql

518 lines
22 KiB
SQL

/* AREA DE DESARROLLO */
CREATE SCHEMA desarrollo1;
SET SEARCH_PATH TO desarrollo1;
/* REQUERIDO PARA TIPO GEOMETRY */
CREATE EXTENSION IF NOT EXISTS postgis;
/*==============================================================*/
/* Table: APLICACION */
/*==============================================================*/
create table if not exists APLICACION (
ID_APLICACION INT4 not null,
NOMBRE_APP varchar(100) null,
VIGENTE BOOL null,
constraint PK_APLICACION primary key (ID_APLICACION)
);
/*==============================================================*/
/* Table: COMUNA */
/*==============================================================*/
create table if not exists COMUNA (
ID_COMUNA INT4 not null,
ID_REGION INT4 null,
NOMBRE_COMUNA varchar(100) null,
constraint PK_COMUNA primary key (ID_COMUNA)
);
/*==============================================================*/
/* Table: CONDUCTOR */
/*==============================================================*/
create table if not exists CONDUCTOR (
PATENTE VARCHAR(10) null,
RUT NUMERIC(12) null,
VIGENTE BOOL null
);
/*==============================================================*/
/* Table: DISPOSITIVO */
/*==============================================================*/
create table if not exists DISPOSITIVO (
ID_DISPOSITIVO INT4 not null,
ID_PARADERO INT4 null,
VIGENTE BOOL null,
ULTIMA_CONEXION DATE null,
constraint PK_DISPOSITIVO primary key (ID_DISPOSITIVO)
);
/*==============================================================*/
/* Table: FUNCIONARIO */
/*==============================================================*/
create table if not exists FUNCIONARIO (
RUT NUMERIC(12) null,
ID_OPERADOR INT4 null,
DESDE DATE null,
HASTA DATE null
);
/*==============================================================*/
/* Table: GTFS_CALENDAR */
/*==============================================================*/
create table if not exists GTFS_CALENDAR (
ID_LINEA INT4 not null,
MONDAY BOOL null,
TUESDAY BOOL null,
WEDNESDAY BOOL null,
THURSDAY BOOL null,
FRIDAY BOOL null,
SALURDAY BOOL null,
SUNDAY BOOL null,
constraint PK_GTFS_CALENDAR primary key (ID_LINEA)
);
/*==============================================================*/
/* Table: GTFS_FREQUENCIE */
/*==============================================================*/
create table if not exists GTFS_FREQUENCIE (
ID_TRIPS INT4 null,
START_TIME TIME null,
END_TIME TIME null,
HEADWAY_SECS int null,
EXACT_TIME int null
);
/*==============================================================*/
/* Index: INDEX_FREQUENCIE */
/*==============================================================*/
create index INDEX_FREQUENCIE on GTFS_FREQUENCIE (
ID_TRIPS
);
/*==============================================================*/
/* Table: GTFS_ROUTES */
/*==============================================================*/
create table if not exists GTFS_ROUTES (
ID_ROUTES INT4 not null,
ID_OPERADOR INT4 null,
ID_ROUTE_TYPE int null,
SHORT_NAME varchar(100) null,
LONG_NAME varchar(300) null,
DESCRIPCION varchar(500) null,
ROUTE_COLOR VARCHAR(6) null,
ROUTE_TEXT_COLOR VARCHAR(6) null,
ROUTE_SORT_ORDER int null,
constraint PK_GTFS_ROUTES primary key (ID_ROUTES)
);
/*==============================================================*/
/* Table: GTFS_ROUTE_TYPE */
/*==============================================================*/
create table if not exists GTFS_ROUTE_TYPE (
ID_ROUTE_TYPE int not null,
DESCRIPCION varchar(100) null,
constraint PK_GTFS_ROUTE_TYPE primary key (ID_ROUTE_TYPE)
);
/*==============================================================*/
/* Table: GTFS_SHAPE */
/*==============================================================*/
create table if not exists GTFS_SHAPE (
ID_SHAPES INT4 not null,
SHAPE_PT_LAT geometry null,
SHAPE_PT_LON geometry null,
SHAPE_PT_SEQUENCE int null,
SHAOE_DIST_TRAVELED float null,
constraint PK_GTFS_SHAPE primary key (ID_SHAPES)
);
/*==============================================================*/
/* Table: GTFS_STOP_TIMES */
/*==============================================================*/
create table if not exists GTFS_STOP_TIMES (
ID_PARADERO INT4 not null,
ID_TRIPS INT4 not null,
ARRIVAL_TIME TIME null,
STOP_SEQUENCE int null,
STOP_HEADSIGN varchar(100) null,
constraint PK_GTFS_STOP_TIMES primary key (ID_PARADERO, ID_TRIPS)
);
/*==============================================================*/
/* Table: GTFS_TRIPS */
/*==============================================================*/
create table if not exists GTFS_TRIPS (
ID_TRIPS INT4 not null,
ID_ROUTES INT4 null,
ID_LINEA INT4 null,
ID_SHAPES INT4 null,
ID_TRIPS_REGRESO INT4 null,
TRIP_HEADSIGN varchar(100) null,
SHORT_NAME varchar(100) null,
DIRECCION_ID int null,
constraint PK_GTFS_TRIPS primary key (ID_TRIPS)
);
/*==============================================================*/
/* Table: LINEA */
/*==============================================================*/
create table if not exists LINEA (
ID_LINEA INT4 not null,
ID_OPERADOR INT4 null,
IID_TIPO_TRANSPORTE INT4 null,
ID_REGION INT4 null,
VIGENTE BOOL null,
NOMBRE VARCHAR(100) null,
URL varchar(300) null,
constraint PK_LINEA primary key (ID_LINEA)
);
/*==============================================================*/
/* Table: OPERADOR */
/*==============================================================*/
create table if not exists OPERADOR (
ID_OPERADOR INT4 not null,
ID_REGION INT4 null,
VIGENTE BOOL null,
constraint PK_OPERADOR primary key (ID_OPERADOR)
);
/*==============================================================*/
/* Table: PARADERO */
/*==============================================================*/
create table if not exists PARADERO (
ID_PARADERO INT4 not null,
ID_COMUNA INT4 null,
ID_TIPO_PARADERO INT4 null,
VIGENTE BOOL null,
STOP_CODE varchar(100) null,
STOP_NAME varchar(100) null,
STOP_DESC varchar(300) null,
STOP_LAT geometry null,
STOP_LON geometry null,
constraint PK_PARADERO primary key (ID_PARADERO)
);
/*==============================================================*/
/* Table: PARADERO_IMAGEN */
/*==============================================================*/
create table if not exists PARADERO_IMAGEN (
ID_PARADERO INT4 not null,
IMAGEN BYTEA null,
constraint PK_PARADERO_IMAGEN primary key (ID_PARADERO)
);
/*==============================================================*/
/* Table: PERSONA */
/*==============================================================*/
create table if not exists PERSONA (
RUT NUMERIC(12) not null,
ID_TIPO_TRATAMIENTO INT4 null,
ID_COMUNA INT4 null,
DV CHAR(1) null,
NOMBRES VARCHAR(100) null,
APELLIDO_A VARCHAR(100) null,
APELLIDO_B VARCHAR(100) null,
FONO VARCHAR(100) null,
EMAIL VARCHAR(100) null,
FECHA_NACIMIENTO DATE null,
DIRECCION VARCHAR(100) null,
constraint PK_PERSONA primary key (RUT)
);
/*==============================================================*/
/* Table: REGION */
/*==============================================================*/
create table if not exists REGION (
ID_REGION INT4 not null,
NOMBRE_REGION VARCHAR(100) not null,
constraint PK_REGION primary key (ID_REGION)
);
/*==============================================================*/
/* Table: ROL */
/*==============================================================*/
create table if not exists ROL (
ID_ROL INT4 not null,
NOMBRE_ROL varchar(100) not null,
constraint PK_ROL primary key (ID_ROL)
);
/*==============================================================*/
/* Table: ROL_APLICACION */
/*==============================================================*/
create table if not exists ROL_APLICACION (
ID_APLICACION INT4 not null,
ID_ROL INT4 not null,
SOLO_VISUALIZAR BOOL null,
ID_ROL_APP SERIAL4 not null,
CONSTRAINT rol_aplicacion_pk PRIMARY KEY (ID_ROL_APP)
);
CREATE UNIQUE INDEX rol_aplicacion_id_aplicacion_idx ON ROL_APLICACION USING btree (ID_APLICACION, ID_ROL);
/*==============================================================*/
/* Table: TIPO_DISPOSITIVO */
/*==============================================================*/
create table if not exists TIPO_DISPOSITIVO (
ID_DISPOSITIVO INT4 null,
ID_TIPO_DISPOSITIVO INT4 null
);
/*==============================================================*/
/* Table: TIPO_PARADERO */
/*==============================================================*/
create table if not exists TIPO_PARADERO (
ID_TIPO_PARADERO INT4 not null,
DESCRIPCION VARCHAR(100) null,
constraint PK_TIPO_PARADERO primary key (ID_TIPO_PARADERO)
);
/*==============================================================*/
/* Table: TIPO_TRANSPORTE */
/*==============================================================*/
create table if not exists TIPO_TRANSPORTE (
IID_TIPO_TRANSPORTE INT4 not null,
DESCRIPCION VARCHAR(50) null,
constraint PK_TIPO_TRANSPORTE primary key (IID_TIPO_TRANSPORTE)
);
/*==============================================================*/
/* Table: TIPO_TRATAMIENTO_PERSONA */
/*==============================================================*/
create table if not exists TIPO_TRATAMIENTO_PERSONA (
ID_TIPO_TRATAMIENTO INT4 not null,
TRATAMIENTO varchar(50) null,
constraint PK_TIPO_TRATAMIENTO_PERSONA primary key (ID_TIPO_TRATAMIENTO)
);
comment on table TIPO_TRATAMIENTO_PERSONA is
'Establece el tratamiento de como dirigirse hacia una persona:
Ejemplo
Señor
Señora
Srta';
/*==============================================================*/
/* Table: TIPO_VEHICULO */
/*==============================================================*/
create table if not exists TIPO_VEHICULO (
ID_TIPO_VEHICULO int not null,
DESCRIPCION varchar(100) null,
constraint PK_TIPO_VEHICULO primary key (ID_TIPO_VEHICULO)
);
/*==============================================================*/
/* Table: USUARIO */
/*==============================================================*/
create table if not exists USUARIO (
LOGIN VARCHAR(20) not null,
RUT NUMERIC(12) null,
CLAVE VARCHAR(20) null,
VIGENTE bool null,
constraint PK_USUARIO primary key (LOGIN)
);
/*==============================================================*/
/* Table: USUARIO_ROL */
/*==============================================================*/
create table if not exists USUARIO_ROL (
LOGIN VARCHAR(20) null,
ID_ROL INT4 null,
VIGENTE BOOL null
);
/*==============================================================*/
/* Table: VEHICULO */
/*==============================================================*/
create table if not exists VEHICULO (
PPU VARCHAR(10) not null,
ID_TIPO_VEHICULO int null,
VIGENTE BOOL null,
constraint PK_VEHICULO primary key (PPU)
);
/*==============================================================*/
/* Table: VEHICULO_LINEA */
/*==============================================================*/
create table if not exists VEHICULO_LINEA (
PATENTE VARCHAR(10) null,
ID_LINEA INT4 null,
VIGENTE BOOL null
);
/*==============================================================*/
/* View: VW_PARADERO_LINEA */
/*==============================================================*/
create or replace view VW_PARADERO_LINEA as
select;
alter table COMUNA
add constraint FK_COMUNA_REFERENCE_REGION foreign key (ID_REGION)
references REGION (ID_REGION)
on delete restrict on update restrict;
alter table CONDUCTOR
add constraint FK_CONDUCTO_REFERENCE_VEHICULO foreign key (PATENTE)
references VEHICULO (PPU)
on delete restrict on update restrict;
alter table CONDUCTOR
add constraint FK_CONDUCTO_REFERENCE_PERSONA foreign key (RUT)
references PERSONA (RUT)
on delete restrict on update restrict;
alter table DISPOSITIVO
add constraint FK_DISPOSIT_REFERENCE_PARADERO foreign key (ID_PARADERO)
references PARADERO (ID_PARADERO)
on delete restrict on update restrict;
alter table FUNCIONARIO
add constraint FK_FUNCIONA_REFERENCE_PERSONA foreign key (RUT)
references PERSONA (RUT)
on delete restrict on update restrict;
alter table FUNCIONARIO
add constraint FK_FUNCIONA_REFERENCE_OPERADOR foreign key (ID_OPERADOR)
references OPERADOR (ID_OPERADOR)
on delete restrict on update restrict;
alter table GTFS_CALENDAR
add constraint FK_GTFS_CAL_REFERENCE_LINEA foreign key (ID_LINEA)
references LINEA (ID_LINEA)
on delete restrict on update restrict;
alter table GTFS_FREQUENCIE
add constraint FK_GTFS_FRE_REFERENCE_GTFS_TRI foreign key (ID_TRIPS)
references GTFS_TRIPS (ID_TRIPS)
on delete restrict on update restrict;
alter table GTFS_ROUTES
add constraint FK_GTFS_ROU_REFERENCE_OPERADOR foreign key (ID_OPERADOR)
references OPERADOR (ID_OPERADOR)
on delete restrict on update restrict;
alter table GTFS_ROUTES
add constraint FK_GTFS_ROU_REFERENCE_GTFS_ROU foreign key (ID_ROUTE_TYPE)
references GTFS_ROUTE_TYPE (ID_ROUTE_TYPE)
on delete restrict on update restrict;
alter table GTFS_STOP_TIMES
add constraint FK_GTFS_STO_REFERENCE_PARADERO foreign key (ID_PARADERO)
references PARADERO (ID_PARADERO)
on delete restrict on update restrict;
alter table GTFS_STOP_TIMES
add constraint FK_GTFS_STO_REFERENCE_GTFS_TRI foreign key (ID_TRIPS)
references GTFS_TRIPS (ID_TRIPS)
on delete restrict on update restrict;
alter table GTFS_TRIPS
add constraint FK_GTFS_TRI_REFERENCE_GTFS_ROU foreign key (ID_ROUTES)
references GTFS_ROUTES (ID_ROUTES)
on delete restrict on update restrict;
alter table GTFS_TRIPS
add constraint FK_GTFS_TRI_REFERENCE_LINEA foreign key (ID_LINEA)
references LINEA (ID_LINEA)
on delete restrict on update restrict;
alter table GTFS_TRIPS
add constraint FK_GTFS_TRI_REFERENCE_GTFS_SHA foreign key (ID_SHAPES)
references GTFS_SHAPE (ID_SHAPES)
on delete restrict on update restrict;
alter table GTFS_TRIPS
add constraint FK_GTFS_TRI_REFERENCE_GTFS_TRI foreign key (ID_TRIPS_REGRESO)
references GTFS_TRIPS (ID_TRIPS)
on delete restrict on update restrict;
alter table LINEA
add constraint FK_LINEA_REFERENCE_OPERADOR foreign key (ID_OPERADOR)
references OPERADOR (ID_OPERADOR)
on delete restrict on update restrict;
alter table LINEA
add constraint FK_LINEA_REFERENCE_TIPO_TRA foreign key (IID_TIPO_TRANSPORTE)
references TIPO_TRANSPORTE (IID_TIPO_TRANSPORTE)
on delete restrict on update restrict;
alter table LINEA
add constraint FK_LINEA_REFERENCE_REGION foreign key (ID_REGION)
references REGION (ID_REGION)
on delete restrict on update restrict;
alter table OPERADOR
add constraint FK_OPERADOR_REFERENCE_REGION foreign key (ID_REGION)
references REGION (ID_REGION)
on delete restrict on update restrict;
alter table PARADERO
add constraint FK_PARADERO_REFERENCE_COMUNA foreign key (ID_COMUNA)
references COMUNA (ID_COMUNA)
on delete restrict on update restrict;
alter table PARADERO
add constraint FK_PARADERO_REFERENCE_TIPO_PAR foreign key (ID_TIPO_PARADERO)
references TIPO_PARADERO (ID_TIPO_PARADERO)
on delete restrict on update restrict;
alter table PARADERO_IMAGEN
add constraint FK_PARADERO_REFERENCE_PARADERO foreign key (ID_PARADERO)
references PARADERO (ID_PARADERO)
on delete restrict on update restrict;
alter table PERSONA
add constraint FK_PERSONA_REFERENCE_COMUNA foreign key (ID_COMUNA)
references COMUNA (ID_COMUNA)
on delete restrict on update restrict;
alter table PERSONA
add constraint FK_PERSONA_REFERENCE_TIPO_TRA foreign key (ID_TIPO_TRATAMIENTO)
references TIPO_TRATAMIENTO_PERSONA (ID_TIPO_TRATAMIENTO)
on delete restrict on update restrict;
alter table ROL_APLICACION
add constraint FK_ROL_APLI_REFERENCE_APLICACI foreign key (ID_APLICACION)
references APLICACION (ID_APLICACION)
on delete restrict on update restrict;
alter table ROL_APLICACION
add constraint FK_ROL_APLI_REFERENCE_ROL foreign key (ID_ROL)
references ROL (ID_ROL)
on delete restrict on update restrict;
alter table TIPO_DISPOSITIVO
add constraint FK_TIPO_DIS_REFERENCE_DISPOSIT foreign key (ID_DISPOSITIVO)
references DISPOSITIVO (ID_DISPOSITIVO)
on delete restrict on update restrict;
alter table USUARIO
add constraint FK_USUARIO_REFERENCE_PERSONA foreign key (RUT)
references PERSONA (RUT)
on delete restrict on update restrict;
alter table USUARIO_ROL
add constraint FK_USUARIO__REFERENCE_USUARIO foreign key (LOGIN)
references USUARIO (LOGIN)
on delete restrict on update restrict;
alter table USUARIO_ROL
add constraint FK_USUARIO__REFERENCE_ROL foreign key (ID_ROL)
references ROL (ID_ROL)
on delete restrict on update restrict;
alter table VEHICULO
add constraint FK_VEHICULO_REFERENCE_TIPO_VEH foreign key (ID_TIPO_VEHICULO)
references TIPO_VEHICULO (ID_TIPO_VEHICULO)
on delete restrict on update restrict;
alter table VEHICULO_LINEA
add constraint FK_VEHICULO_REFERENCE_VEHICULO foreign key (PATENTE)
references VEHICULO (PPU)
on delete restrict on update restrict;
alter table VEHICULO_LINEA
add constraint FK_VEHICULO_REFERENCE_LINEA foreign key (ID_LINEA)
references LINEA (ID_LINEA)
on delete restrict on update restrict;