Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Amparo
  • wiki
  • Wiki
  • banco_dados

Last edited by Clara Da Cunha D Ávila Oct 06, 2023
Page history
This is an old version of this page. You can view the most recent version or browse the history.

banco_dados

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Código BD Qualidade Utilização

Banco de Dados

Descrição

O PostgreSQL, muitas vezes chamado de Postgres, é um poderoso sistema de gerenciamento de banco de dados relacional de código aberto. Ele é projetado para armazenar, recuperar e gerenciar dados estruturados em um ambiente de banco de dados relacional. Sua natureza de código aberto significa que seu código-fonte é livremente acessível e modificável pela comunidade de desenvolvedores em todo o mundo.

Banco de Dados Amparo

Este banco de dados PostgreSQL é projetado para gerenciar informações relacionadas à plataforma de saúde Amparo, que envolve médicos, pacientes, planos de saúde, medicamentos, informações médicas, agendamento de consultas, exames e interações sociais entre pacientes por meio de postagens e votos em postagens.

Tabelas e Relações

  • User: Armazena informações de usuários, incluindo médicos e pacientes, com um identificador único (UUID). Os usuários têm campos como email, senha criptografada, nome, número de celular e podem ter uma imagem de perfil. Também há um campo booleano para determinar se o usuário é anônimo.

  • Doctor: Mantém informações específicas de médicos, como CRM (registro médico) e UF (unidade federativa), e possui uma relação com a tabela de usuários para identificação única.

  • HealthPlan: Armazena detalhes sobre planos de saúde, incluindo nome e imagem do plano.

  • DoctorHealthPlan: Registra a associação entre médicos e planos de saúde, permitindo que médicos aceitem ou trabalhem com planos específicos.

  • Patient: Armazena informações de pacientes, incluindo CPF (Cadastro de Pessoa Física), com relação à tabela de usuários para identificação única.

  • Information: Mantém informações médicas e de saúde, como título, link, imagem e descrição, associadas a médicos.

  • DoctorPatient: Registra a relação entre médicos e pacientes, permitindo que médicos tenham pacientes atribuídos.

  • Appointment: Controla agendamentos de consultas entre médicos e pacientes, com informações de data e hora.

  • Medicine: Armazena detalhes sobre medicamentos, incluindo nome e folheto informativo.

  • Dosage: Registra informações sobre dosagens de medicamentos, incluindo a quantidade, hora inicial, frequência e data final, associadas a pacientes e medicamentos.

  • Incompatibility: Mantém informações sobre incompatibilidades entre medicamentos, com um campo de severidade e descrição.

  • Exam: Gerencia informações de exames médicos, incluindo descrição, data do exame e status de conclusão, com associação a pacientes.

  • Post: Permite que pacientes criem postagens relacionadas à saúde, com conteúdo, data de criação e a capacidade de serem relacionadas a outras postagens. Os pacientes podem votar nas postagens (curtir ou não gostar), e as postagens podem ser marcadas como principais ou não.

  • Vote: Registra os votos (curtir ou não gostar) dados pelos pacientes nas postagens, com relação à tabela de postagens e pacientes.

Este banco de dados é projetado para oferecer suporte a uma variedade de operações relacionadas à saúde, desde o gerenciamento de informações médicas até a comunicação e interação entre médicos e pacientes por meio de agendamento de consultas e interações sociais na forma de postagens.

Sumário

  • Modelagem
  • Esquema Conceitual
  • Esquema Lógico
  • Implementação
  • Knex
  • Schemas
  • Postgrees

Modelagem

Esquema Conceitual

Um modelo conceitual de banco de dados é uma representação abstrata e de alto nível dos dados que um sistema de banco de dados deve armazenar e gerenciar. Ele descreve as principais entidades (objetos ou conceitos) envolvidos no sistema, os relacionamentos entre essas entidades e os atributos associados a cada entidade.

Esquema Conceitual

Esquema Lógico

Um modelo lógico em um banco de dados é uma representação mais detalhada e estruturada dos dados do que um modelo conceitual. Ele descreve como os dados serão organizados e estruturados no banco de dados, sem considerar detalhes de implementação física, como hardware ou sistema de gerenciamento de banco de dados específico.

Esquema Lógico

Implementação

TBD

Knex

TBD

Schemas

Table User
  • id (uuid, primary key)
  • email (text unique, not null)
  • password (text not null)
  • salt (text not null)
  • name (text not null)
  • cellphone (text not null)
  • profile_picture (text)
  • is_anonymous (boolean)
Table Doctor
  • id (uuid, unique, primary key)
  • crm (text unique, not null)
  • uf (text not null)
  • id (uuid, foreign key referencing User)
Table HealthPlan
  • id (uuid, primary key)
  • name (text not null)
  • health_plan_image (text)
Table DoctorHealthPlan
  • id (uuid, primary key)
  • id_doctor (uuid)
  • id_health_plan (uuid)
  • Foreign key (id_doctor) references Doctor (id)
  • Foreign key (id_health_plan) references HealthPlan (id)
Table Patient
  • id (uuid, unique, primary key)
  • cpf (text)
  • Foreign key (id) references User (id)
Table Information
  • id (uuid, primary key)
  • title (text)
  • link (text)
  • image (text)
  • description (text)
  • id_doctor (uuid, not null)
  • Foreign key (id_doctor) references Doctor (id)
Table DoctorPatient
  • id (uuid, primary key)
  • id_doctor (uuid)
  • id_patient (uuid)
  • Foreign key (id_doctor) references Doctor (id)
  • Foreign key (id_patient) references Patient (id)
Table Appointment
  • id (uuid, primary key)
  • id_doctor (uuid)
  • id_patient (uuid)
  • appointment_date (timestamp not null)
  • Foreign key (id_doctor) references Doctor (id)
  • Foreign key (id_patient) references Patient (id)
Table Medicine
  • id (uuid, primary key)
  • name (text not null)
  • leaflet (text)
Table Dosage
  • id (uuid, primary key)
  • id_patient (uuid)
  • id_medicine (uuid)
  • quantity (text not null)
  • initial_hour (timestamp)
  • frequency (timestamp)
  • final_date (timestamp)
  • Foreign key (id_patient) references Patient (id)
  • Foreign key (id_medicine) references Medicine (id)
Table Incompatibility
  • id (uuid, primary key)
  • id_medicine (uuid)
  • id_medicine_inc (uuid)
  • severity (text)
  • description (text)
  • Foreign key (id_medicine) references Medicine (id)
  • Foreign key (id_medicine_inc) references Medicine (id)
Table Exam
  • id (uuid, primary key)
  • description (text)
  • exam_date (timestamp not null)
  • is_done (boolean)
  • id_patient (uuid)
  • Foreign key (id_patient) references Patient (id)
Table Post
  • id (uuid, primary key)
  • content (text)
  • creation_date (timestamp not null)
  • id_patient (uuid)
  • is_main (boolean not null)
  • id_post (uuid)
  • Foreign key (id_post) references Post (id)
  • Foreign key (id_patient) references Patient (id)
Table Vote
  • id (uuid, primary key)
  • is_like (boolean not null)
  • id_post (uuid not null)
  • id_patient (uuid)
  • Foreign key (id_patient) references Patient (id)
  • Foreign key (id_post) references Post (id)

PostgreSQL

O PostgreSQL é um sistema de gerenciamento de banco de dados relacional (SGBD) de código aberto que é amplamente utilizado em aplicações de alta escalabilidade e missão crítica. Ele foi desenvolvido a partir do projeto POSTGRES na Universidade da Califórnia, em Berkeley, no início da década de 1990, e desde então se tornou uma das opções mais populares e poderosas para o gerenciamento de dados em muitos tipos de aplicações.É um poderoso SGBD relacional de código aberto que oferece recursos avançados de consulta, extensibilidade e suporte a uma ampla gama de aplicativos e casos de uso. É uma escolha sólida para organizações que buscam uma solução de banco de dados confiável e altamente personalizável.

Para mais informações acesse: https://www.postgresql.org/docs/

Clone repository
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • design_mockups
  • escopo
  • Home
  • processo
  • qualidade
  • utilizacao