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
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 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.
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/