create table ACCION (
ACCI_ID              INT4                 not null,
ACCI_NOMBRE          VARCHAR(50)          not null,
ACCI_DESCRIPCION     VARCHAR(100)         null,
constraint PK_ACCION primary key (ACCI_ID)
);

create unique index ACCION_PK on ACCION (
ACCI_ID
);

create table AYUDA (
AYUD_ID              INT4                 not null,
AYUD_TITULO          VARCHAR(50)          not null,
AYUD_CONTENIDO       TEXT                 not null,
AYUD_URL             VARCHAR(100)         not null,
constraint PK_AYUDA primary key (AYUD_ID)
);

create unique index AYUDA_PK on AYUDA (
AYUD_ID
);

create table BARRIO (
BARR_ID              INT4                 not null,
ZONA_ID              INT4                 null,
BARR_NOMBRE          VARCHAR(30)          not null,
constraint PK_BARRIO primary key (BARR_ID)
);

create unique index BARRIO_PK on BARRIO (
BARR_ID
);

create  index BARRIO_DE_LA_ZONA_FK on BARRIO (
ZONA_ID
);

create table CARGA_ARCHIVOS (
CARG_ARCH_ID         INT4                 not null,
CARG_ARCH_NOMBRE_ARCHIVO VARCHAR(255)         not null,
CARG_ARCH_ESTADO     VARCHAR(255)         not null,
CARG_ARCH_FECHA_HORA VARCHAR(20)          not null,
constraint PK_CARGA_ARCHIVOS primary key (CARG_ARCH_ID)
);

create unique index CARGA_ARCHIVOS_PK on CARGA_ARCHIVOS (
CARG_ARCH_ID
);

create table CARGO (
CARG_ID              INT4                 not null,
CARG_NOMBRE          VARCHAR(30)          not null,
constraint PK_CARGO primary key (CARG_ID)
);

create unique index CARGO_PK on CARGO (
CARG_ID
);

create table CATEGORIA_PRODUCTO (
CATE_PROD_CABASNET   INT4                 not null,
CATE_PROD_EMPRESA    VARCHAR(20)          null,
CATE_PROD_CODIGO     INT4                 not null,
CATE_PROD_NOMBRE     VARCHAR(50)          not null,
constraint PK_CATEGORIA_PRODUCTO primary key (CATE_PROD_CODIGO)
);

create unique index CATEGORIA_PRODUCTO_PK on CATEGORIA_PRODUCTO (
CATE_PROD_CODIGO
);

create table CATEGORIA_RECLAMO (
CATE_RECL_ID         INT4                 not null,
CATE_RECL_NOMBRE     VARCHAR(20)          not null,
CATE_RECL_DESCRIPCION VARCHAR(50)          null,
CATE_RECL_EMAIL      VARCHAR(30)          not null,
constraint PK_CATEGORIA_RECLAMO primary key (CATE_RECL_ID)
);

create unique index CATEGORIA_RECLAMO_PK on CATEGORIA_RECLAMO (
CATE_RECL_ID
);

create table CIIU (
CIIU_ID              INT4                 not null,
CIIU_CIIU            VARCHAR(10)          not null,
constraint PK_CIIU primary key (CIIU_ID)
);

create unique index CIIU_PK on CIIU (
CIIU_ID
);

create table CIUDAD (
CIUD_ID              INT4                 not null,
DEPA_ID              INT4                 null,
CIUD_NOMBRE          VARCHAR(30)          not null,
constraint PK_CIUDAD primary key (CIUD_ID)
);

create unique index CIUDAD_PK on CIUDAD (
CIUD_ID
);

create  index CIUDAD_O_MUNICIPIO_DEL_DEPARTAM on CIUDAD (
DEPA_ID
);

create table COMUNIDAD (
COMU_ID              INT4                 not null,
EMPR_ID              INT4                 null,
COMU_NOMBRE          VARCHAR(40)          not null,
constraint PK_COMUNIDAD primary key (COMU_ID)
);

create unique index COMUNIDAD_PK on COMUNIDAD (
COMU_ID
);

create  index RELATIONSHIP_53_FK on COMUNIDAD (
EMPR_ID
);

create table COMUNIDAD_ESTABLECIMIENTO (
COMU_ESTA_ID         INT4                 not null,
ESTA_ID              INT4                 null,
COMU_ID              INT4                 null,
constraint PK_COMUNIDAD_ESTABLECIMIENTO primary key (COMU_ESTA_ID)
);

create unique index COMUNIDAD_ESTABLECIMIENTO_PK on COMUNIDAD_ESTABLECIMIENTO (
COMU_ESTA_ID
);

create  index RELATIONSHIP_54_FK on COMUNIDAD_ESTABLECIMIENTO (
COMU_ID
);

create  index RELATIONSHIP_55_FK on COMUNIDAD_ESTABLECIMIENTO (
ESTA_ID
);

create table COTIZACION (
COTI_ID              INT4                 not null,
ESTA_ID              INT4                 null,
ESTA_COTI_ID         INT4                 null,
EMPR_ID              INT4                 null,
COTI_FECHA           DATE                 not null,
COTI_DESCRIPCION     VARCHAR(50)          null,
constraint PK_COTIZACION primary key (COTI_ID)
);

create unique index COTIZACION_PK on COTIZACION (
COTI_ID
);

create  index ESTABLECIMIENTO_QUE_HIZO_LA_COT on COTIZACION (
ESTA_ID
);

create  index PROVEEDOR_DESTINO_DE_LA_COTIZAC on COTIZACION (
EMPR_ID
);

create  index RELATIONSHIP_45_FK on COTIZACION (
ESTA_COTI_ID
);

create table DEPARTAMENTO (
DEPA_ID              INT4                 not null,
PAIS_ID              INT4                 null,
DEPA_NOMBRE          VARCHAR(30)          not null,
constraint PK_DEPARTAMENTO primary key (DEPA_ID)
);

create unique index DEPARTAMENTO_PK on DEPARTAMENTO (
DEPA_ID
);

create  index DEPARTAMENTOS_DEL_PAIS_FK on DEPARTAMENTO (
PAIS_ID
);

create table DETALLES_FACTURA (
DETA_FACT_ID         INT4                 not null,
FACT_ID              INT4                 null,
constraint PK_DETALLES_FACTURA primary key (DETA_FACT_ID)
);

create unique index DETALLES_FACTURA_PK on DETALLES_FACTURA (
DETA_FACT_ID
);

create  index DETALLES_DE_LA_FACTURA_FK on DETALLES_FACTURA (
FACT_ID
);

create table EMPRESA (
EMPR_ID              INT4                 not null,
CIIU_ID              INT4                 null,
TIPO_EMPR_ID         INT4                 null,
CIUD_ID              INT4                 null,
ESTA_EMPR_ID         INT4                 null,
SECT_CODIGO          INT4                 null,
EMPR_RAZON_SOCIAL    VARCHAR(30)          not null,
EMPR_NOMBRE_COMERCIAL VARCHAR(30)          not null,
EMPR_DESCRIPCION     VARCHAR(255)         null,
EMPR_NIT             VARCHAR(20)          not null,
EMPR_DIRECCION       VARCHAR(50)          not null,
EMPR_TELEFONO1       VARCHAR(15)          not null,
EMPR_TELEFONO2       VARCHAR(15)          null,
EMPR_CONTACTO1       VARCHAR(30)          not null,
EMPR_CONTACTO2       VARCHAR(30)          null,
EMPR_FAX             VARCHAR(7)           null,
EMPR_EMAIL           VARCHAR(60)          not null,
EMPR_NUMERO_AFILIACION_FENALCO VARCHAR(15)          null,
EMPR_FECHA_ACTIVACION DATE                 not null,
EMPR_GLN             VARCHAR(20)          null,
EMPR_FECHA_REGISTRO  DATE                 not null,
constraint PK_EMPRESA primary key (EMPR_ID)
);

create unique index EMPRESA_PK on EMPRESA (
EMPR_ID
);

create  index SECTOR_DE_LA_EMPRESA_FK on EMPRESA (
SECT_CODIGO
);

create  index CIIU_DE_LA_EMPRESA_FK on EMPRESA (
CIIU_ID
);

create  index RELATIONSHIP_40_FK on EMPRESA (
CIUD_ID
);

create  index RELATIONSHIP_46_FK on EMPRESA (
ESTA_EMPR_ID
);

create  index RELATIONSHIP_49_FK on EMPRESA (
TIPO_EMPR_ID
);

create table ESCALA_PRECIO_PRODUCTO (
ESCA_PREC_PROD_ID    INT4                 not null,
COMU_ID              INT4                 null,
PROD_PROV_ID         INT4                 null,
ESCA_PREC_PROD_MINIMO INT4                 not null,
ESCA_PREC_PROD_MAXIMO INT4                 null,
ESCA_PREC_PROD_PRECIO FLOAT8               not null,
constraint PK_ESCALA_PRECIO_PRODUCTO primary key (ESCA_PREC_PROD_ID)
);

create unique index ESCALA_PRECIO_PRODUCTO_PK on ESCALA_PRECIO_PRODUCTO (
ESCA_PREC_PROD_ID
);

create  index ESCALA_PRECIO_DEL_PRODUCTO_FK on ESCALA_PRECIO_PRODUCTO (
PROD_PROV_ID
);

create  index RELATIONSHIP_56_FK on ESCALA_PRECIO_PRODUCTO (
COMU_ID
);

create table ESTABLECIMIENTO (
ESTA_ID              INT4                 not null,
BARR_ID              INT4                 null,
EMPR_ID              INT4                 null,
ESTA_NOMBRE          VARCHAR(30)          not null,
ESTA_DIRECCION       VARCHAR(50)          not null,
ESTA_CALLE           INT4                 not null,
ESTA_CARRERA         INT4                 not null,
ESTA_ORIENTACION_CALLE VARCHAR(1)           not null,
ESTA_ORIENTACION_CARRERA VARCHAR(1)           not null,
ESTA_CONTACTO1       VARCHAR(30)          not null,
ESTA_CONTACTO2       VARCHAR(30)          null,
ESTA_TELEFONO1       VARCHAR(15)          not null,
ESTA_TELEFONO2       VARCHAR(15)          null,
ESTA_AREA_TIENDA     FLOAT8               not null,
ESTA_PUNTOS_PAGO     INT4                 not null,
ESTA_AREA_BODEGA     FLOAT8               not null,
ESTA_ESTRATO         INT4                 not null,
ESTA_GLN             VARCHAR(20)          not null,
constraint PK_ESTABLECIMIENTO primary key (ESTA_ID)
);

create unique index ESTABLECIMIENTO_PK on ESTABLECIMIENTO (
ESTA_ID
);

create  index ESTABLECIMIENTO_DEL_MINORISTA_F on ESTABLECIMIENTO (
EMPR_ID
);

create  index RELATIONSHIP_41_FK on ESTABLECIMIENTO (
BARR_ID
);

create table ESTADO_COTIZACION (
ESTA_COTI_ID         INT4                 not null,
ESTA_COTI_NOMBRE     VARCHAR(30)          not null,
constraint PK_ESTADO_COTIZACION primary key (ESTA_COTI_ID)
);

create unique index ESTADO_COTIZACION_PK on ESTADO_COTIZACION (
ESTA_COTI_ID
);

create table ESTADO_EMPRESA (
ESTA_EMPR_ID         INT4                 not null,
ESTA_EMPR_NOMBRE     VARCHAR(30)          not null,
constraint PK_ESTADO_EMPRESA primary key (ESTA_EMPR_ID)
);

create unique index ESTADO_EMPRESA_PK on ESTADO_EMPRESA (
ESTA_EMPR_ID
);

create table ESTADO_FACTURA (
ESTA_FACT_ID         INT4                 not null,
ESTA_FACT_NOMBRE     VARCHAR(30)          not null,
constraint PK_ESTADO_FACTURA primary key (ESTA_FACT_ID)
);

create unique index ESTADO_FACTURA_PK on ESTADO_FACTURA (
ESTA_FACT_ID
);

create table ESTADO_PEDIDO (
ESTA_PEDI_ID         INT4                 not null,
ROL_ID               INT4                 null,
ESTA_PEDI_NOMBRE     VARCHAR(30)          not null,
constraint PK_ESTADO_PEDIDO primary key (ESTA_PEDI_ID)
);

create unique index ESTADO_PEDIDO_PK on ESTADO_PEDIDO (
ESTA_PEDI_ID
);

create  index RELATIONSHIP_48_FK on ESTADO_PEDIDO (
ROL_ID
);

create table FACTURA (
FACT_ID              INT4                 not null,
ESTA_FACT_ID         INT4                 null,
EMPR_ID              INT4                 null,
FACT_FECHA           DATE                 not null,
FACT_VALOR           FLOAT8               not null,
constraint PK_FACTURA primary key (FACT_ID)
);

create unique index FACTURA_PK on FACTURA (
FACT_ID
);

create  index FACTURAS_DE_LA_EMPRESA_FK on FACTURA (
EMPR_ID
);

create  index RELATIONSHIP_47_FK on FACTURA (
ESTA_FACT_ID
);

create table LISTA_COMPRA (
LIST_COMP_ID         INT4                 not null,
EMPR_ID              INT4                 null,
LIST_COMP_NOMBRE     VARCHAR(30)          not null,
constraint PK_LISTA_COMPRA primary key (LIST_COMP_ID)
);

create unique index LISTA_COMPRA_PK on LISTA_COMPRA (
LIST_COMP_ID
);

create  index MINORISTA_DUENO_DE_LA_LISTA_FK on LISTA_COMPRA (
EMPR_ID
);

create table LOG (
LOG_ID               INT4                 not null,
ACCI_ID              INT4                 null,
LOG_LOGIN_USUARIO    VARCHAR(12)          not null,
LOG_CEDULA_USUARIO   VARCHAR(15)          null,
LOG_FECHA            DATE                 not null,
LOG_HORA             TIME                 not null,
LOG_DESCRIPCION      VARCHAR(100)         null,
LOG_CALLCENTER       VARCHAR(12)          null,
constraint PK_LOG primary key (LOG_ID)
);

create unique index LOG_PK on LOG (
LOG_ID
);

create  index ACCION_REGISTRADA_EN_EL_LOG_FK on LOG (
ACCI_ID
);

create table MENSAJE (
MENS_ID              INT4                 not null,
MENS_EXPRESION       VARCHAR(100)         not null,
constraint PK_MENSAJE primary key (MENS_ID)
);

create unique index MENSAJE_PK on MENSAJE (
MENS_ID
);

create table MINORISTA (
EMPR_ID              INT4                 not null,
MINO_NURIT           INT4                 not null,
constraint PK_MINORISTA primary key (EMPR_ID)
);

create unique index MINORISTA_PK on MINORISTA (
EMPR_ID
);

create table MINORISTA_PROVEEDOR (
MINO_PROV_ID         INT4                 not null,
EMPR_ID              INT4                 null,
PRO_EMPR_ID          INT4                 null,
MINO_PROV_EXCLUSIVO  INT4                 not null,
MINO_PROV_CATALOGO   INT4                 not null,
constraint PK_MINORISTA_PROVEEDOR primary key (MINO_PROV_ID)
);

create unique index MINORISTA_PROVEEDOR_PK on MINORISTA_PROVEEDOR (
MINO_PROV_ID
);

create  index PROVEEDOR_EN_LA_RELACION_FK on MINORISTA_PROVEEDOR (
PRO_EMPR_ID
);

create  index MINORISTA_EN_LA_RELACION_FK on MINORISTA_PROVEEDOR (
EMPR_ID
);

create table OPERADOR_LOGISTICO (
OPER_LOGI_ID         INT4                 not null,
CIUD_ID              INT4                 null,
OPER_LOGI_NOMBRE     VARCHAR(30)          not null,
OPER_LOGI_DIRECCION  VARCHAR(40)          not null,
OPER_LOGI_CONTACTO   VARCHAR(30)          not null,
OPER_LOGI_TELEFONO   VARCHAR(15)          not null,
OPER_LOGI_EMAIL      VARCHAR(60)          not null,
constraint PK_OPERADOR_LOGISTICO primary key (OPER_LOGI_ID)
);

create unique index OPERADOR_LOGISTICO_PK on OPERADOR_LOGISTICO (
OPER_LOGI_ID
);

create  index RELATIONSHIP_42_FK on OPERADOR_LOGISTICO (
CIUD_ID
);

create table ORIGEN_PEDIDO (
ORIG_PEDI_ID         INT4                 not null,
ORIG_PEDI_NOMBRE     VARCHAR(30)          not null,
constraint PK_ORIGEN_PEDIDO primary key (ORIG_PEDI_ID)
);

create unique index ORIGEN_PEDIDO_PK on ORIGEN_PEDIDO (
ORIG_PEDI_ID
);

create table PAIS (
PAIS_ID              INT4                 not null,
PAIS_NOMBRE          VARCHAR(20)          not null,
constraint PK_PAIS primary key (PAIS_ID)
);

create unique index PAIS_PK on PAIS (
PAIS_ID
);

create table PARAMETROS_SISTEMA (
PARA_SIST_ID         INT4                 not null,
PARA_SIST_NOMBRE     VARCHAR(30)          not null,
PARA_SIST_VALOR      VARCHAR(30)          not null,
PARA_SIST_DESCRIPCION VARCHAR(60)          null,
constraint PK_PARAMETROS_SISTEMA primary key (PARA_SIST_ID)
);

create unique index PARAMETROS_SISTEMA_PK on PARAMETROS_SISTEMA (
PARA_SIST_ID
);

create table PEDIDO (
PEDI_ID              INT4                 not null,
ESTA_ID              INT4                 null,
ESTA_PEDI_ID         INT4                 null,
ORIG_PEDI_ID         INT4                 null,
EMPR_ID              INT4                 null,
PEDI_FECHA           DATE                 not null,
PEDI_HORA            TIME                 not null,
PEDI_DISPOSITIVO     INT4                 not null,
constraint PK_PEDIDO primary key (PEDI_ID)
);

create unique index PEDIDO_PK on PEDIDO (
PEDI_ID
);

create  index ESTADO_DEL_PEDIDO_FK on PEDIDO (
ESTA_PEDI_ID
);

create  index ORIGEN_DEL_PEDIDO_FK on PEDIDO (
ORIG_PEDI_ID
);

create  index RELATIONSHIP_51_FK on PEDIDO (
ESTA_ID
);

create  index RELATIONSHIP_52_FK on PEDIDO (
EMPR_ID
);

create table PEDIDO_HISTORICO (
PEDI_HIST_ID         INT4                 not null,
PEDI_HIST_ESTABLECIMIENTO_ID INT4                 not null,
PEDI_HIST_ESTADO_PEDIDO_ID INT4                 not null,
PEDI_HIST_ORIGEN_PEDIDO_ID INT4                 not null,
PEDI_HIST_EMPRESA_ID INT4                 not null,
PEDI_HIST_FECHA      DATE                 not null,
PEDI_HIST_HORA       TIME                 not null,
PEDI_HIST_DISPOSITIVO INT4                 not null,
constraint PK_PEDIDO_HISTORICO primary key (PEDI_HIST_ID)
);

create unique index PEDIDO_HISTORICO_PK on PEDIDO_HISTORICO (
PEDI_HIST_ID
);

create table PRODUCTO_COTIZACION (
PROD_COTI_ID         INT4                 not null,
COTI_ID              INT4                 null,
PROD_PROV_ID         INT4                 null,
PROD_COTI_CANTIDAD   INT4                 not null,
PROD_COTI_PRECIO     FLOAT8               not null,
constraint PK_PRODUCTO_COTIZACION primary key (PROD_COTI_ID)
);

create unique index PRODUCTO_COTIZACION_PK on PRODUCTO_COTIZACION (
PROD_COTI_ID
);

create  index COTIZACION_ASOCIADA_CON_EL_PROD on PRODUCTO_COTIZACION (
PROD_PROV_ID
);

create  index CONTENIDO_DE_LA_COTIZACION_FK on PRODUCTO_COTIZACION (
COTI_ID
);

create table PRODUCTO_LISTA_COMPRA (
PROD_LIST_COMP_ID    INT4                 not null,
PROD_PROV_ID         INT4                 null,
LIST_COMP_ID         INT4                 null,
PROD_LIST_COMP_CANTIDAD INT4                 not null,
constraint PK_PRODUCTO_LISTA_COMPRA primary key (PROD_LIST_COMP_ID)
);

create unique index PRODUCTO_LISTA_COMPRA_PK on PRODUCTO_LISTA_COMPRA (
PROD_LIST_COMP_ID
);

create  index LISTA_DE_COMPRAS_ASOCIADA_CON_E on PRODUCTO_LISTA_COMPRA (
PROD_PROV_ID
);

create  index CONTENIDO_LISTA_DE_COMPRAS_FK on PRODUCTO_LISTA_COMPRA (
LIST_COMP_ID
);

create table PRODUCTO_PEDIDO (
PROD_PEDI_ID         INT4                 not null,
PROD_PROV_ID         INT4                 null,
PEDI_ID              INT4                 null,
PROD_PEDI_CANTIDAD   INT4                 not null,
PROD_PEDI_PRECIO     FLOAT8               not null,
constraint PK_PRODUCTO_PEDIDO primary key (PROD_PEDI_ID)
);

create unique index PRODUCTO_PEDIDO_PK on PRODUCTO_PEDIDO (
PROD_PEDI_ID
);

create  index PRODUCTO_ASOCIADO_FK on PRODUCTO_PEDIDO (
PROD_PROV_ID
);

create  index CONTENIDO_DEL_PEDIDO_FK on PRODUCTO_PEDIDO (
PEDI_ID
);

create table PRODUCTO_PEDIDO_HISTORICO (
PROD_PEDI_HIST_ID    INT4                 not null,
PEDI_HIST_ID         INT4                 null,
PROD_PEDI_HIST_PROD_PROV_ID INT4                 not null,
PROD_PEDI_HIST_CANTIDAD INT4                 not null,
PROD_PEDI_HIST_PRECIO FLOAT8               not null,
constraint PK_PRODUCTO_PEDIDO_HISTORICO primary key (PROD_PEDI_HIST_ID)
);

create unique index PRODUCTO_PEDIDO_HISTORICO_PK on PRODUCTO_PEDIDO_HISTORICO (
PROD_PEDI_HIST_ID
);

create  index RELATIONSHIP_60_FK on PRODUCTO_PEDIDO_HISTORICO (
PEDI_HIST_ID
);

create table PRODUCTO_PROVEEDOR (
PROD_PROV_ID         INT4                 not null,
CATE_PROD_CODIGO     INT4                 null,
EMPR_ID              INT4                 null,
PROD_PROV_CODIGO     VARCHAR(14)          not null,
PROD_PROV_PROVEEDOR  VARCHAR(20)          null,
PROD_PROV_DESCRIPCION_LARGA VARCHAR(100)         null,
PROD_PROV_DESCRIPCION_CORTA VARCHAR(50)          null,
PROD_PROV_COLOR      VARCHAR(50)          null,
PROD_PROV_TALLA      VARCHAR(50)          null,
PROD_PROV_MARCA      VARCHAR(50)          null,
PROD_PROV_REGISTRO_SANITARIO VARCHAR(50)          null,
PROD_PROV_FORMA_FARMACEUTICA VARCHAR(50)          null,
PROD_PROV_ESTILO     VARCHAR(50)          null,
PROD_PROV_NOMBRE_FUNCIONAL VARCHAR(50)          null,
PROD_PROV_VARIANTE   VARCHAR(50)          null,
PROD_PROV_NOMBRE_FABRICANTE VARCHAR(50)          null,
PROD_PROV_PRINCIPIO_ACTIVO VARCHAR(50)          null,
PROD_PROV_UNIDAD_CONSUMO INT4                 null,
PROD_PROV_UNIDAD_DESPACHO INT4                 null,
PROD_PROV_UNIDAD_COMERCIO INT4                 null,
PROD_PROV_ANCHO      FLOAT8               null,
PROD_PROV_ANCHO_UNIDAD VARCHAR(50)          null,
PROD_PROV_PESO_NETO  FLOAT8               null,
PROD_PROV_PESO_NETO_UNIDAD VARCHAR(50)          null,
PROD_PROV_PROFUNDIDAD FLOAT8               null,
PROD_PROV_PROFUNDIDAD_UNIDAD VARCHAR(50)          null,
PROD_PROV_ALTO       FLOAT8               null,
PROD_PROV_ALTO_UNIDAD VARCHAR(50)          null,
PROD_PROV_PESO_BRUTO FLOAT8               null,
PROD_PROV_PESO_BRUTO_UNIDAD VARCHAR(50)          null,
PROD_PROV_TEMPERATURA_MINIMA FLOAT8               null,
PROD_PROV_TEMPERATURA_MAXIMA FLOAT8               null,
PROD_PROV_TEMPERATURA_UNIDAD VARCHAR(50)          null,
PROD_PROV_UNIDADES_APILABLES INT4                 null,
PROD_PROV_TENDIDOS   INT4                 null,
PROD_PROV_UNIDADES_TENDIDO INT4                 null,
PROD_PROV_CANTIDAD_ENVASE FLOAT8               null,
PROD_PROV_CANTIDAD_ENV_UNIDAD VARCHAR(50)          null,
PROD_PROV_PIEZAS     INT4                 null,
PROD_PROV_FECHA_REGISTRO_SANI DATE                 null,
PROD_PROV_TIPO_EMPAQUE VARCHAR(50)          null,
PROD_PROV_URL_IMAGEN VARCHAR(255)         null,
PROD_PROV_NURIT      INT4                 null,
PROD_PROV_ESTADO     INT4                 not null,
PROD_PROV_IVA        FLOAT8               null,
constraint PK_PRODUCTO_PROVEEDOR primary key (PROD_PROV_ID)
);

create unique index PRODUCTO_PROVEEDOR_PK on PRODUCTO_PROVEEDOR (
PROD_PROV_ID
);

create  index CATEGORIA_DEL_PRODUCTO_FK on PRODUCTO_PROVEEDOR (
CATE_PROD_CODIGO
);

create  index RELATIONSHIP_43_FK on PRODUCTO_PROVEEDOR (
EMPR_ID
);

create table PROVEEDOR (
EMPR_ID              INT4                 not null,
TIPO_FACT_ID         INT4                 null,
PROV_PEDIDO_MINIMO   FLOAT8               not null,
PROV_NURIT           INT4                 not null,
PROV_GLN             VARCHAR(20)          not null,
PROV_URL_IMAGEN      VARCHAR(255)         null,
PROV_COMPARAR        INT4                 not null,
constraint PK_PROVEEDOR primary key (EMPR_ID)
);

create unique index PROVEEDOR_PK on PROVEEDOR (
EMPR_ID
);

create  index RELATIONSHIP_50_FK on PROVEEDOR (
TIPO_FACT_ID
);

create table RECLAMO (
RECL_ID              INT4                 not null,
USUA_LOGIN           VARCHAR(12)          null,
CATE_RECL_ID         INT4                 null,
RECL_CONTENIDO       VARCHAR(255)         not null,
RECL_FECHA           DATE                 not null,
constraint PK_RECLAMO primary key (RECL_ID)
);

create unique index RECLAMO_PK on RECLAMO (
RECL_ID
);

create  index CATEGORIA_DEL_RECLAMO_FK on RECLAMO (
CATE_RECL_ID
);

create  index RECLAMO_DE_UN_USUARIO_FK on RECLAMO (
USUA_LOGIN
);

create table RELACION_FACTURACION (
RELA_FACT_ID         INT4                 not null,
RELA_FACT_COMUNIDAD  INT4                 not null,
RELA_FACT_ESTABLECIMIENTO INT4                 not null,
RELA_FACT_FECHA_ACTIVACION DATE                 not null,
RELA_FACT_FECHA_DESACTIVACION DATE                 null,
constraint PK_RELACION_FACTURACION primary key (RELA_FACT_ID)
);

create unique index RELACION_FACTURACION_PK on RELACION_FACTURACION (
RELA_FACT_ID
);

create table ROL (
ROL_ID               INT4                 not null,
ROL_NOMBRE           VARCHAR(30)          not null,
ROL_DESCRIPCION      VARCHAR(100)         not null,
ROL_URL              VARCHAR(40)          not null,
constraint PK_ROL primary key (ROL_ID)
);

create unique index ROL_PK on ROL (
ROL_ID
);

create table SECCION (
SECC_ID              INT4                 not null,
SECC_NOMBRE          VARCHAR(50)          not null,
SECC_CONTENIDO       TEXT                 not null,
SECC_IMAGEN          VARCHAR(255)         not null,
SECC_EMAIL           VARCHAR(60)          not null,
constraint PK_SECCION primary key (SECC_ID)
);

create unique index SECCION_PK on SECCION (
SECC_ID
);

create table SECTOR (
SECT_CODIGO          INT4                 not null,
SECT_NOMBRE          VARCHAR(20)          not null,
constraint PK_SECTOR primary key (SECT_CODIGO)
);

create unique index SECTOR_PK on SECTOR (
SECT_CODIGO
);

create table SUPER_OFERTA (
SUPE_OFER_ID         INT4                 not null,
EMPR_ID              INT4                 null,
SUPE_OFER_PRODUCTO   INT4                 not null,
SUPE_OFER_FECHA_INICIO DATE                 not null,
SUPE_OFER_FECHA_FIN  DATE                 not null,
SUPE_OFER_DESCRIPCION VARCHAR(255)         not null,
SUPE_OFER_URL_IMAGEN VARCHAR(255)         not null,
constraint PK_SUPER_OFERTA primary key (SUPE_OFER_ID)
);

create unique index SUPER_OFERTA_PK on SUPER_OFERTA (
SUPE_OFER_ID
);

create  index RELATIONSHIP_57_FK on SUPER_OFERTA (
EMPR_ID
);

create table TIPO_EMPRESA (
TIPO_EMPR_ID         INT4                 not null,
TIPO_EMPR_NOMBRE     VARCHAR(20)          not null,
constraint PK_TIPO_EMPRESA primary key (TIPO_EMPR_ID)
);

create unique index TIPO_EMPRESA_PK on TIPO_EMPRESA (
TIPO_EMPR_ID
);

create table TIPO_FACTURACION (
TIPO_FACT_ID         INT4                 not null,
TIPO_FACT_NOMBRE     VARCHAR(50)          not null,
TIPO_FACT_DESCRIPCION VARCHAR(255)         not null,
TIPO_FACT_PARAMETRO  FLOAT8               not null,
constraint PK_TIPO_FACTURACION primary key (TIPO_FACT_ID)
);

create unique index TIPO_FACTURACION_PK on TIPO_FACTURACION (
TIPO_FACT_ID
);

create table USUARIO (
USUA_LOGIN           VARCHAR(12)          not null,
ROL_ID               INT4                 null,
EMPR_ID              INT4                 null,
CARG_ID              INT4                 null,
USUA_CONTRASENA      VARCHAR(50)          not null,
USUA_LOGIN_NURIT     VARCHAR(6)           null,
USUA_CONTRASENA_NURIT VARCHAR(50)          null,
USUA_NOMBRE          VARCHAR(20)          not null,
USUA_APELLIDO        VARCHAR(20)          not null,
USUA_EMAIL           VARCHAR(60)          not null,
USUA_CEDULA          VARCHAR(15)          not null,
USUA_TELEFONO        VARCHAR(15)          null,
constraint PK_USUARIO primary key (USUA_LOGIN)
);

create unique index USUARIO_PK on USUARIO (
USUA_LOGIN
);

create  index EMPRESA_DEL_USUARIO_FK on USUARIO (
EMPR_ID
);

create  index RELATIONSHIP_44_FK on USUARIO (
ROL_ID
);

create  index RELATIONSHIP_58_FK on USUARIO (
CARG_ID
);

create table ZONA (
ZONA_ID              INT4                 not null,
CIUD_ID              INT4                 null,
ZONA_NOMBRE          VARCHAR(20)          not null,
constraint PK_ZONA primary key (ZONA_ID)
);

create unique index ZONA_PK on ZONA (
ZONA_ID
);

create  index ZONA_DE_LA_CIUDAD_FK on ZONA (
CIUD_ID
);

alter table BARRIO
   add constraint FK_BARRIO_BARRIO_DE_ZONA foreign key (ZONA_ID)
      references ZONA (ZONA_ID)
      on delete restrict on update restrict;

alter table CIUDAD
   add constraint FK_CIUDAD_CIUDAD_O__DEPARTAM foreign key (DEPA_ID)
      references DEPARTAMENTO (DEPA_ID)
      on delete restrict on update restrict;

alter table COMUNIDAD
   add constraint FK_COMUNIDA_RELATIONS_PROVEEDO foreign key (EMPR_ID)
      references PROVEEDOR (EMPR_ID)
      on delete restrict on update restrict;

alter table COMUNIDAD_ESTABLECIMIENTO
   add constraint FK_COMUNIDA_RELATIONS_COMUNIDA foreign key (COMU_ID)
      references COMUNIDAD (COMU_ID)
      on delete restrict on update restrict;

alter table COMUNIDAD_ESTABLECIMIENTO
   add constraint FK_COMUNIDA_RELATIONS_ESTABLEC foreign key (ESTA_ID)
      references ESTABLECIMIENTO (ESTA_ID)
      on delete restrict on update restrict;

alter table COTIZACION
   add constraint FK_COTIZACI_ESTABLECI_ESTABLEC foreign key (ESTA_ID)
      references ESTABLECIMIENTO (ESTA_ID)
      on delete restrict on update restrict;

alter table COTIZACION
   add constraint FK_COTIZACI_PROVEEDOR_PROVEEDO foreign key (EMPR_ID)
      references PROVEEDOR (EMPR_ID)
      on delete restrict on update restrict;

alter table COTIZACION
   add constraint FK_COTIZACI_RELATIONS_ESTADO_C foreign key (ESTA_COTI_ID)
      references ESTADO_COTIZACION (ESTA_COTI_ID)
      on delete restrict on update restrict;

alter table DEPARTAMENTO
   add constraint FK_DEPARTAM_DEPARTAME_PAIS foreign key (PAIS_ID)
      references PAIS (PAIS_ID)
      on delete restrict on update restrict;

alter table DETALLES_FACTURA
   add constraint FK_DETALLES_DETALLES__FACTURA foreign key (FACT_ID)
      references FACTURA (FACT_ID)
      on delete restrict on update restrict;

alter table EMPRESA
   add constraint FK_EMPRESA_CIIU_DE_L_CIIU foreign key (CIIU_ID)
      references CIIU (CIIU_ID)
      on delete restrict on update restrict;

alter table EMPRESA
   add constraint FK_EMPRESA_RELATIONS_CIUDAD foreign key (CIUD_ID)
      references CIUDAD (CIUD_ID)
      on delete restrict on update restrict;

alter table EMPRESA
   add constraint FK_EMPRESA_RELATIONS_ESTADO_E foreign key (ESTA_EMPR_ID)
      references ESTADO_EMPRESA (ESTA_EMPR_ID)
      on delete restrict on update restrict;

alter table EMPRESA
   add constraint FK_EMPRESA_RELATIONS_TIPO_EMP foreign key (TIPO_EMPR_ID)
      references TIPO_EMPRESA (TIPO_EMPR_ID)
      on delete restrict on update restrict;

alter table EMPRESA
   add constraint FK_EMPRESA_SECTOR_DE_SECTOR foreign key (SECT_CODIGO)
      references SECTOR (SECT_CODIGO)
      on delete restrict on update restrict;

alter table ESCALA_PRECIO_PRODUCTO
   add constraint FK_ESCALA_P_ESCALA_PR_PRODUCTO foreign key (PROD_PROV_ID)
      references PRODUCTO_PROVEEDOR (PROD_PROV_ID)
      on delete restrict on update restrict;

alter table ESCALA_PRECIO_PRODUCTO
   add constraint FK_ESCALA_P_RELATIONS_COMUNIDA foreign key (COMU_ID)
      references COMUNIDAD (COMU_ID)
      on delete restrict on update restrict;

alter table ESTABLECIMIENTO
   add constraint FK_ESTABLEC_ESTABLECI_MINORIST foreign key (EMPR_ID)
      references MINORISTA (EMPR_ID)
      on delete restrict on update restrict;

alter table ESTABLECIMIENTO
   add constraint FK_ESTABLEC_RELATIONS_BARRIO foreign key (BARR_ID)
      references BARRIO (BARR_ID)
      on delete restrict on update restrict;

alter table ESTADO_PEDIDO
   add constraint FK_ESTADO_P_RELATIONS_ROL foreign key (ROL_ID)
      references ROL (ROL_ID)
      on delete restrict on update restrict;

alter table FACTURA
   add constraint FK_FACTURA_FACTURAS__PROVEEDO foreign key (EMPR_ID)
      references PROVEEDOR (EMPR_ID)
      on delete restrict on update restrict;

alter table FACTURA
   add constraint FK_FACTURA_RELATIONS_ESTADO_F foreign key (ESTA_FACT_ID)
      references ESTADO_FACTURA (ESTA_FACT_ID)
      on delete restrict on update restrict;

alter table LISTA_COMPRA
   add constraint FK_LISTA_CO_MINORISTA_MINORIST foreign key (EMPR_ID)
      references MINORISTA (EMPR_ID)
      on delete restrict on update restrict;

alter table LOG
   add constraint FK_LOG_ACCION_RE_ACCION foreign key (ACCI_ID)
      references ACCION (ACCI_ID)
      on delete restrict on update restrict;

alter table MINORISTA
   add constraint FK_MINORIST_INHERITAN_EMPRESA foreign key (EMPR_ID)
      references EMPRESA (EMPR_ID)
      on delete restrict on update restrict;

alter table MINORISTA_PROVEEDOR
   add constraint FK_MINORIST_MINORISTA_MINORIST foreign key (EMPR_ID)
      references MINORISTA (EMPR_ID)
      on delete restrict on update restrict;

alter table MINORISTA_PROVEEDOR
   add constraint FK_MINORIST_PROVEEDOR_PROVEEDO foreign key (PRO_EMPR_ID)
      references PROVEEDOR (EMPR_ID)
      on delete restrict on update restrict;

alter table OPERADOR_LOGISTICO
   add constraint FK_OPERADOR_RELATIONS_CIUDAD foreign key (CIUD_ID)
      references CIUDAD (CIUD_ID)
      on delete restrict on update restrict;

alter table PEDIDO
   add constraint FK_PEDIDO_ESTADO_DE_ESTADO_P foreign key (ESTA_PEDI_ID)
      references ESTADO_PEDIDO (ESTA_PEDI_ID)
      on delete restrict on update restrict;

alter table PEDIDO
   add constraint FK_PEDIDO_ORIGEN_DE_ORIGEN_P foreign key (ORIG_PEDI_ID)
      references ORIGEN_PEDIDO (ORIG_PEDI_ID)
      on delete restrict on update restrict;

alter table PEDIDO
   add constraint FK_PEDIDO_RELATIONS_ESTABLEC foreign key (ESTA_ID)
      references ESTABLECIMIENTO (ESTA_ID)
      on delete restrict on update restrict;

alter table PEDIDO
   add constraint FK_PEDIDO_RELATIONS_PROVEEDO foreign key (EMPR_ID)
      references PROVEEDOR (EMPR_ID)
      on delete restrict on update restrict;

alter table PRODUCTO_COTIZACION
   add constraint FK_PRODUCTO_CONTENIDO_COTIZACI foreign key (COTI_ID)
      references COTIZACION (COTI_ID)
      on delete restrict on update restrict;

alter table PRODUCTO_COTIZACION
   add constraint FK_PRODUCTO_COTIZACIO_PRODUCTO foreign key (PROD_PROV_ID)
      references PRODUCTO_PROVEEDOR (PROD_PROV_ID)
      on delete restrict on update restrict;

alter table PRODUCTO_LISTA_COMPRA
   add constraint FK_PRODUCTO_CONTENIDO_LISTA_CO foreign key (LIST_COMP_ID)
      references LISTA_COMPRA (LIST_COMP_ID)
      on delete restrict on update restrict;

alter table PRODUCTO_LISTA_COMPRA
   add constraint FK_PRODUCTO_LISTA_DE__PRODUCTO foreign key (PROD_PROV_ID)
      references PRODUCTO_PROVEEDOR (PROD_PROV_ID)
      on delete restrict on update restrict;

alter table PRODUCTO_PEDIDO
   add constraint FK_PRODUCTO_CONTENIDO_PEDIDO foreign key (PEDI_ID)
      references PEDIDO (PEDI_ID)
      on delete restrict on update restrict;

alter table PRODUCTO_PEDIDO
   add constraint FK_PRODUCTO_PRODUCTO__PRODUCTO foreign key (PROD_PROV_ID)
      references PRODUCTO_PROVEEDOR (PROD_PROV_ID)
      on delete restrict on update restrict;

alter table PRODUCTO_PEDIDO_HISTORICO
   add constraint FK_PRODUCTO_RELATIONS_PEDIDO_H foreign key (PEDI_HIST_ID)
      references PEDIDO_HISTORICO (PEDI_HIST_ID)
      on delete restrict on update restrict;

alter table PRODUCTO_PROVEEDOR
   add constraint FK_PRODUCTO_CATEGORIA_CATEGORI foreign key (CATE_PROD_CODIGO)
      references CATEGORIA_PRODUCTO (CATE_PROD_CODIGO)
      on delete restrict on update restrict;

alter table PRODUCTO_PROVEEDOR
   add constraint FK_PRODUCTO_RELATIONS_PROVEEDO foreign key (EMPR_ID)
      references PROVEEDOR (EMPR_ID)
      on delete restrict on update restrict;

alter table PROVEEDOR
   add constraint FK_PROVEEDO_INHERITAN_EMPRESA foreign key (EMPR_ID)
      references EMPRESA (EMPR_ID)
      on delete restrict on update restrict;

alter table PROVEEDOR
   add constraint FK_PROVEEDO_RELATIONS_TIPO_FAC foreign key (TIPO_FACT_ID)
      references TIPO_FACTURACION (TIPO_FACT_ID)
      on delete restrict on update restrict;

alter table RECLAMO
   add constraint FK_RECLAMO_CATEGORIA_CATEGORI foreign key (CATE_RECL_ID)
      references CATEGORIA_RECLAMO (CATE_RECL_ID)
      on delete restrict on update restrict;

alter table RECLAMO
   add constraint FK_RECLAMO_RECLAMO_D_USUARIO foreign key (USUA_LOGIN)
      references USUARIO (USUA_LOGIN)
      on delete restrict on update restrict;

alter table SUPER_OFERTA
   add constraint FK_SUPER_OF_RELATIONS_PROVEEDO foreign key (EMPR_ID)
      references PROVEEDOR (EMPR_ID)
      on delete restrict on update restrict;

alter table USUARIO
   add constraint FK_USUARIO_EMPRESA_D_EMPRESA foreign key (EMPR_ID)
      references EMPRESA (EMPR_ID)
      on delete restrict on update restrict;

alter table USUARIO
   add constraint FK_USUARIO_RELATIONS_ROL foreign key (ROL_ID)
      references ROL (ROL_ID)
      on delete restrict on update restrict;

alter table USUARIO
   add constraint FK_USUARIO_RELATIONS_CARGO foreign key (CARG_ID)
      references CARGO (CARG_ID)
      on delete restrict on update restrict;

alter table ZONA
   add constraint FK_ZONA_ZONA_DE_L_CIUDAD foreign key (CIUD_ID)
      references CIUDAD (CIUD_ID)
      on delete restrict on update restrict;

