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) -
cellphone
(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)
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) -
image
(--) -
verified_owner
(--) -
status
(enum, not null) -
active
(boolean, not null, default 'true') -
created_at
(timestamp, 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) -
like_deslike
(char, default '0') -
created_at
(timestamp, not null)