| Home | Escopo | Processo | Design/Mockups | Configuração | Arquitetura | Gerência | BD | Qualidade | Frontend | Backend | Analytics |
|---|
Descrição
O PostgreSQL é um Sistema Gerenciador de Banco de Dados Relacional (SGBDR) de código aberto que oferece um ambiente altamente escalável e seguro para armazenamento e recuperação de dados. Sua arquitetura modular e flexível, combinada com recursos avançados como transações ACID e suporte a JSON, tornou-o uma escolha preferencial para este projeto.
Banco de Dados - Sem Barreiras
O banco de dados fornece uma estrutura organizada e eficiente para armazenar e gerenciar todas as informações relevantes, como dados sobre usuários, estabelecimentos, deficiências, acessibilidades, classificações e postagens. Sua utilização facilita a organização, consulta e compartilhamento de informações cruciais para promover a acessibilidade e inclusão.
Tabelas e Relações
User: Armazena informações sobre os usuários.
UserDisability: Relaciona usuários e suas deficiências.
Disability: Mantém registros das diferentes deficiências que os usuários podem ter.
Accessibility: Armazena informações sobre os tipos de acessibilidade que os estabelecimentos podem ter dispostos.
DisabilityAccessibility: Relaciona deficiências e as acessibilidades necessárias.
Establishment: Contém dados sobre os estabelecimentos onde os usuários podem frequentar.
EstablishmentAccessibility: Entidade associativa que registra as acessibilidades presentes em um estabelecimento.
Post: Registra as postagens feitas pelos usuários sobre os estabelecimentos.
Modelagem
Esquema Conceitual
O modelo conceitual é desenvolvido independentemente das especificações de hardware, como capacidade de armazenamento de dados, localização ou especificações de software, como fornecedor e tecnologia de SGBD. O foco é representar os dados como o usuário os verá no “mundo real”.
Descrição
Relacionamentos:
- Um usuário pode possuir 0 ou muitas deficiências (0:N)
- Uma deficiência pode constar em 0 ou muitos usuários (0:N)
- Um estabelecimento pode ter 1 ou muitas acessibilidades (1:N)
- Uma acessibilidade pode constar em 0 ou muitos estabelecimentos (0:N)
- Um usuário pode avaliar 0 ou muitos estabelecimentos (0:N)
- Um estabelecimento pode ser avaliado por 0 ou muitos usuários (0:N)
- Uma deficiência é representada por 1 ou muitas acessibilidades (1:N)
- Uma acessibilidade representa 1 deficiência (1:1)
Esquema Lógico
A modelo lógico é usado para definir a estrutura dos elementos de dados e definir relacionamentos entre eles. O modelo de dados lógicos adiciona mais informações aos elementos conceituais do modelo de dados. A vantagem de usar um modelo de dados lógico é fornecer uma foundation para formar a base para o modelo físico.

Schemas
Table User
-
user_id(uuid, primary key) -
email(text unique, not null) -
password(text, not null) -
name(text, not null) -
phone(text, not null) -
birthdate(text, not null) -
occupation(text, not null) -
image(--) -
active(boolean, not null, default 'true') -
is_admin(boolean, not null, default 'false') -
created_at(timestamp, not null) -
description(text)
Table Disability
-
disability_id(uuid, primary key) -
description(text)
Table UserDisability
-
disability_id(uuid, foreign key) -
user_id(uuid, foreign key)
Table Accessibility
-
accessibility_id(uuid, primary key) -
description(text not null)
Table DisabilityAccessibility
-
disability_id(uuid, foreign key) -
accessibility_id(uuid, foreign key)
Table Establishment
-
establishment_id(uuid, primary key) -
ùser_id(--) -
cnpj(text, unique, not null) -
name(text, not null) -
type(text, not null) -
description(text, not null) -
ad_number(numeric, not null) -
ad_street(text, not null) -
ad_city(text, not null) -
ad_state(text, not null) -
ad_cep(text, not null) -
longitude(numeric, not null) -
latitude(numeric, not null) -
additionalDetails(text, not null) -
image(--) -
verified_owner(--) -
status(enum, not null) -
active(boolean, not null, default 'true') -
created_at(timestamp, not null) -
phone(text, not null)
Table EstablishmentImage
-
image_id(uuid, primary key) -
establishment_id(uuid, foreign key) -
image(--) -
description(text, not null)
Table EstablishmentAccessibility
-
establishment_id(uuid, foreign key) -
accessibility_id(uuid, foreign key)
Table Post
-
post_id(uuid, primary key) -
user_id(uuid, foreign key) -
establishment_id(uuid, foreign key) -
content(text) -
rating(char) -
reported(boolean, not null, default = false) -
created_at(timestamp, not null)
