... | ... | @@ -2,14 +2,12 @@ |
|
|
| :----------: | :------------------: | :------------------: | :------------------------------: | :--------------------------: | :------------------------: | :------------------: | :------------------: | :--------------------: | :------------------: | :----------------: |
|
|
|
|
|
|
## 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
|
|
|
### Tabelas e Relações
|
|
|
|
|
|
**User:** Armazena informações sobre os usuários.
|
|
|
|
... | ... | @@ -28,8 +26,90 @@ O banco de dados fornece uma estrutura organizada e eficiente para armazenar e g |
|
|
**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”.
|
|
|
|
|
|
![image](uploads/2782e755a8e81a76a10742e0c9bc2930/image.png)
|
|
|
|
|
|
### 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
|
|
|
![drawSQL-image-export-2024-04-09](uploads/474bf2e9ead54db00a3dacc0084ffa30/drawSQL-image-export-2024-04-09.png) |
|
|
\ No newline at end of file |
|
|
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.
|
|
|
|
|
|
![drawSQL-image-export-2024-04-09](uploads/474bf2e9ead54db00a3dacc0084ffa30/drawSQL-image-export-2024-04-09.png)
|
|
|
|
|
|
|
|
|
### 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) |