Subversion Repositories Integrator Subversion

Rev

Rev 777 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

/*==============================================================*/
/* DBMS name:     PostgreSQL 8                                  */
/* Criado em:     22/11/2025                                        */
/* Autor: Bruno Lopes Peixoto                                       */
/*==============================================================*/

SET search_path = sc_slp;

CREATE SEQUENCE sq_pessoa
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: slp_pessoa                                            */
/*==============================================================*/
CREATE TABLE slp_pessoa (
   seq_pessoa           INT8                 NOT NULL DEFAULT NEXTVAL('sc_slp.sq_pessoa'::regclass),
   dsc_nome             VARCHAR(120)         NOT NULL,
   ind_ativo            BOOL                 NOT NULL,
   CONSTRAINT pk_pessoa PRIMARY KEY (seq_pessoa)
);

-- set table ownership
ALTER TABLE slp_pessoa owner TO sc_slp
;
/*==============================================================*/
/* Index: ix_pessoa                                             */
/*==============================================================*/
CREATE UNIQUE INDEX ix_pessoa ON slp_pessoa (
seq_pessoa
);

CREATE SEQUENCE sq_usuario
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: slp_usuario                                           */
/*==============================================================*/
CREATE TABLE slp_usuario (
   seq_usuario          INT8                 NOT NULL DEFAULT NEXTVAL('sc_slp.sq_usuario'::regclass),
   seq_pessoa           INT8                 NULL,
   dsc_login            VARCHAR(32)          NOT NULL,
   dsc_nome             VARCHAR(120)         NULL,
   dsc_senha            VARCHAR(32)          NOT NULL,
   dth_ultimo_acesso    TIMESTAMP            NULL,
   ind_ativo            BOOL                 NOT NULL,
   CONSTRAINT pk_usuario PRIMARY KEY (seq_usuario)
);

-- set table ownership
ALTER TABLE slp_usuario owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_usuario                                            */
/*==============================================================*/
CREATE UNIQUE INDEX ix_usuario ON slp_usuario (
seq_usuario
);

/*==============================================================*/
/* Index: ix_usuario_pessoa                                     */
/*==============================================================*/
CREATE  INDEX ix_usuario_pessoa ON slp_usuario (
seq_pessoa
);

CREATE SEQUENCE sq_ativo
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: slp_ativo                                             */
/*==============================================================*/
CREATE TABLE slp_ativo (
   seq_ativo            INT8                 NOT NULL DEFAULT NEXTVAL('sc_slp.sq_ativo'::regclass),
   dsc_ativo            VARCHAR(120)         NULL,
   tip_tendencia        CHAR(1)              NOT NULL
      CONSTRAINT ck_tendencia_ativo CHECK (tip_tendencia IN ('A','B','N')),
   ind_ativo            BOOL                 NOT NULL,
   CONSTRAINT pk_ativo PRIMARY KEY (seq_ativo)
);

comment ON COLUMN slp_ativo.tip_tendencia IS
'Valores possíveis:
A - Alta
B - Baixa
N - Não Definida'
;

-- set table ownership
ALTER TABLE slp_ativo owner TO sc_slp
;
/*==============================================================*/
/* Index: ix_ativo                                              */
/*==============================================================*/
CREATE UNIQUE INDEX ix_ativo ON slp_ativo (
seq_ativo
);

CREATE SEQUENCE sq_candle
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: slp_candle                                            */
/*==============================================================*/
CREATE TABLE slp_candle (
   seq_candle           INT8                 NOT NULL DEFAULT NEXTVAL('sc_slp.sq_candle'::regclass),
   seq_ativo            INT8                 NOT NULL,
   val_contador         INT8                 NULL,
   dth_datahora         TIMESTAMP            NOT NULL,
   val_abertura         NUMERIC(20,6)        NOT NULL,
   val_maxima           NUMERIC(20,6)        NOT NULL,
   val_minima           NUMERIC(20,6)        NOT NULL,
   val_fechamento       NUMERIC(20,6)        NOT NULL,
   val_volume           NUMERIC(20,6)        NULL,
   tip_periodo          VARCHAR(2)           NOT NULL,
   ind_analisado        BOOL                 NOT NULL,
   CONSTRAINT pk_candle PRIMARY KEY (seq_candle)
);

-- set table ownership
ALTER TABLE slp_candle owner TO sc_slp
;
/*==============================================================*/
/* Index: ix_candle                                             */
/*==============================================================*/
CREATE UNIQUE INDEX ix_candle ON slp_candle (
seq_candle
);

/*==============================================================*/
/* Index: ix_candle_ativo                                       */
/*==============================================================*/
CREATE  INDEX ix_candle_ativo ON slp_candle (
seq_ativo
);

ALTER TABLE slp_candle
   ADD CONSTRAINT fk_candleativo_candle FOREIGN KEY (seq_ativo)
      REFERENCES slp_ativo (seq_ativo)
      ON DELETE RESTRICT ON UPDATE RESTRICT;
         
         
/*==============================================================*/
/* Table: slp_sinal                                             */
/*==============================================================*/
CREATE TABLE slp_sinal (
   cod_sinal            VARCHAR(30)          NOT NULL,
   seq_candleref        INT8                 NOT NULL,
   seq_candleg1         INT8                 NULL,
   seq_candleg2         INT8                 NULL,
   seq_candleg3         INT8                 NULL,
   seq_candleg4         INT8                 NULL,
   dth_sinal            DATE                 NOT NULL,
   tip_sinal            CHAR(1)              NOT NULL,
   tip_situacao_sinal   CHAR(1)              NOT NULL,
   val_entrada2         NUMERIC(10,2)        NULL,
   val_alvo1            NUMERIC(10,2)        NULL,
   val_entrada1         NUMERIC(10,2)        NULL,
   val_alvo2            NUMERIC(10,2)        NULL,
   val_stop1            NUMERIC(10,2)        NULL,
   val_stop2            NUMERIC(10,2)        NULL,
   CONSTRAINT pk_sinal PRIMARY KEY (cod_sinal)
);

-- set table ownership
ALTER TABLE slp_sinal owner TO sc_slp
;
ALTER TABLE slp_sinal
   ADD CONSTRAINT fk_sinal_candleg1 FOREIGN KEY (seq_candleg1)
      REFERENCES slp_candle (seq_candle)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE slp_sinal
   ADD CONSTRAINT fk_sinal_candleg2 FOREIGN KEY (seq_candleg2)
      REFERENCES slp_candle (seq_candle)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE slp_sinal
   ADD CONSTRAINT fk_sinal_candleg3 FOREIGN KEY (seq_candleg3)
      REFERENCES slp_candle (seq_candle)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE slp_sinal
   ADD CONSTRAINT fk_sinal_candleg4 FOREIGN KEY (seq_candleg4)
      REFERENCES slp_candle (seq_candle)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE slp_sinal
   ADD CONSTRAINT fk_sinal_candleref FOREIGN KEY (seq_candleref)
      REFERENCES slp_candle (seq_candle)
      ON DELETE RESTRICT ON UPDATE RESTRICT;



SET search_path = public;


-- PERMISSÕES
GRANT USAGE ON SCHEMA sc_slp TO sc_slp;

GRANT SELECT, INSERT, UPDATE, DELETE
ON ALL TABLES IN SCHEMA sc_slp
TO sc_slp;

ALTER DEFAULT PRIVILEGES IN SCHEMA sc_slp
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO sc_slp;