Ir para o conteúdo

Banco de Dados - MedPark

Esta página contém a documentação do Banco de Dados.

Tecnologias

  • Sistema Gerenciador de Banco de Dados (SGBD): PostgreSQL
  • Mapeamento Objeto-Relacional (ORM): SQLAlchemy
  • Ferramenta de Gerenciamento Visual: DBeaver

DDL

O script SQL a seguir foi gerado a partir de uma função do DBeaver.

-- public.mensalistas definition

-- Drop table

-- DROP TABLE public.mensalistas;

CREATE TABLE public.mensalistas (
    id serial4 NOT NULL,
    nome_completo varchar NOT NULL,
    email varchar NOT NULL,
    cpf varchar NOT NULL,
    rg varchar NOT NULL,
    telefone varchar NULL,
    path_doc_pessoal varchar NOT NULL,
    path_doc_comprovante varchar NOT NULL,
    CONSTRAINT mensalistas_cpf_key UNIQUE (cpf),
    CONSTRAINT mensalistas_pkey PRIMARY KEY (id)
);
CREATE UNIQUE INDEX ix_mensalistas_email ON public.mensalistas USING btree (email);
CREATE INDEX ix_mensalistas_id ON public.mensalistas USING btree (id);


-- public.planos_mensalista definition

-- Drop table

-- DROP TABLE public.planos_mensalista;

CREATE TABLE public.planos_mensalista (
    id serial4 NOT NULL,
    nome varchar NOT NULL,
    preco_mensal float8 NOT NULL,
    descricao varchar NOT NULL,
    CONSTRAINT planos_mensalista_pkey PRIMARY KEY (id)
);
CREATE INDEX ix_planos_mensalista_id ON public.planos_mensalista USING btree (id);
CREATE UNIQUE INDEX ix_planos_mensalista_nome ON public.planos_mensalista USING btree (nome);


-- public.tipos_veiculo definition

-- Drop table

-- DROP TABLE public.tipos_veiculo;

CREATE TABLE public.tipos_veiculo (
    id serial4 NOT NULL,
    nome varchar NOT NULL,
    tarifa_hora float8 NOT NULL,
    CONSTRAINT tipos_veiculo_pkey PRIMARY KEY (id)
);
CREATE INDEX ix_tipos_veiculo_id ON public.tipos_veiculo USING btree (id);
CREATE UNIQUE INDEX ix_tipos_veiculo_nome ON public.tipos_veiculo USING btree (nome);


-- public.usuarios definition

-- Drop table

-- DROP TABLE public.usuarios;

CREATE TABLE public.usuarios (
    id serial4 NOT NULL,
    nome varchar NOT NULL,
    email varchar NOT NULL,
    senha_hash varchar NOT NULL,
    perfil public."perfilusuario" NOT NULL,
    CONSTRAINT usuarios_pkey PRIMARY KEY (id)
);
CREATE UNIQUE INDEX ix_usuarios_email ON public.usuarios USING btree (email);
CREATE INDEX ix_usuarios_id ON public.usuarios USING btree (id);
CREATE INDEX ix_usuarios_nome ON public.usuarios USING btree (nome);


-- public.assinaturas_plano definition

-- Drop table

-- DROP TABLE public.assinaturas_plano;

CREATE TABLE public.assinaturas_plano (
    id serial4 NOT NULL,
    data_inicio date NOT NULL,
    data_fim date NULL,
    status public."statusassinatura" NOT NULL,
    mensalista_id int4 NOT NULL,
    plano_id int4 NOT NULL,
    CONSTRAINT assinaturas_plano_pkey PRIMARY KEY (id),
    CONSTRAINT assinaturas_plano_mensalista_id_fkey FOREIGN KEY (mensalista_id) REFERENCES public.mensalistas(id),
    CONSTRAINT assinaturas_plano_plano_id_fkey FOREIGN KEY (plano_id) REFERENCES public.planos_mensalista(id)
);
CREATE INDEX ix_assinaturas_plano_id ON public.assinaturas_plano USING btree (id);


-- public.pagamentos_mensalidade definition

-- Drop table

-- DROP TABLE public.pagamentos_mensalidade;

CREATE TABLE public.pagamentos_mensalidade (
    id serial4 NOT NULL,
    data_vencimento date NOT NULL,
    data_pagamento date NULL,
    valor_pago float8 NULL,
    mes_referencia int4 NOT NULL,
    status public."statuspagamento" NOT NULL,
    assinatura_id int4 NOT NULL,
    CONSTRAINT pagamentos_mensalidade_pkey PRIMARY KEY (id),
    CONSTRAINT pagamentos_mensalidade_assinatura_id_fkey FOREIGN KEY (assinatura_id) REFERENCES public.assinaturas_plano(id)
);
CREATE INDEX ix_pagamentos_mensalidade_id ON public.pagamentos_mensalidade USING btree (id);


-- public.solicitacoes_mensalista definition

-- Drop table

-- DROP TABLE public.solicitacoes_mensalista;

CREATE TABLE public.solicitacoes_mensalista (
    id serial4 NOT NULL,
    nome_completo varchar NOT NULL,
    email varchar NOT NULL,
    cpf varchar NOT NULL,
    rg varchar NOT NULL,
    telefone varchar NULL,
    placa_veiculo varchar NOT NULL,
    path_doc_pessoal varchar NOT NULL,
    path_doc_comprovante varchar NOT NULL,
    status public."statussolicitacao" NOT NULL,
    plano_id int4 NOT NULL,
    tipo_veiculo_id int4 NOT NULL,
    CONSTRAINT solicitacoes_mensalista_pkey PRIMARY KEY (id),
    CONSTRAINT solicitacoes_mensalista_plano_id_fkey FOREIGN KEY (plano_id) REFERENCES public.planos_mensalista(id),
    CONSTRAINT solicitacoes_mensalista_tipo_veiculo_id_fkey FOREIGN KEY (tipo_veiculo_id) REFERENCES public.tipos_veiculo(id)
);
CREATE INDEX ix_solicitacoes_mensalista_id ON public.solicitacoes_mensalista USING btree (id);


-- public.veiculos definition

-- Drop table

-- DROP TABLE public.veiculos;

CREATE TABLE public.veiculos (
    placa varchar NOT NULL,
    modelo varchar NULL,
    cor varchar NULL,
    mensalista_id int4 NULL,
    tipo_veiculo_id int4 NOT NULL,
    CONSTRAINT veiculos_pkey PRIMARY KEY (placa),
    CONSTRAINT veiculos_mensalista_id_fkey FOREIGN KEY (mensalista_id) REFERENCES public.mensalistas(id),
    CONSTRAINT veiculos_tipo_veiculo_id_fkey FOREIGN KEY (tipo_veiculo_id) REFERENCES public.tipos_veiculo(id)
);
CREATE INDEX ix_veiculos_placa ON public.veiculos USING btree (placa);


-- public.registros_estacionamento definition

-- Drop table

-- DROP TABLE public.registros_estacionamento;

CREATE TABLE public.registros_estacionamento (
    id serial4 NOT NULL,
    hora_entrada timestamp NOT NULL,
    hora_saida timestamp NULL,
    valor_pago float8 NULL,
    veiculo_placa varchar NOT NULL,
    CONSTRAINT registros_estacionamento_pkey PRIMARY KEY (id),
    CONSTRAINT registros_estacionamento_veiculo_placa_fkey FOREIGN KEY (veiculo_placa) REFERENCES public.veiculos(placa)
);
CREATE INDEX ix_registros_estacionamento_id ON public.registros_estacionamento USING btree (id);

Modelo Físico

O modelo físico a seguir foi gerado a partir de uma função do DBeaver.

Modelo Físico

Imagem 1: modelo físico do banco de dados.

Histórico de Versões

Versão Data Autor(es) Descrição das Alterações
1.0 29/10/2025 Brunna Louise Criação do documento.

Tabela 1: Histórico de versões do documento de Banco de Dados do projeto MedPark.