|
| [Home](home) | [Escopo e Cronograma](escopo) | [Processo](processo) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [Arquitetura](arquitetura) | [Código](codigo) | [**BD**](banco_dados) | [Utilização](utilizacao) |
|
|
<table>
|
|
| :----------: | :---------------------------: | :------------------: | :--------------: | :--------------------------: | :----------------------------: | :--------------: | :---------------: | :----------------------: |
|
|
<tr>
|
|
|
|
<th>
|
|
|
|
|
|
|
|
[Home](home)
|
|
|
|
</th>
|
|
|
|
<th>
|
|
|
|
|
|
|
|
[Escopo e Cronograma](escopo)
|
|
|
|
</th>
|
|
|
|
<th>
|
|
|
|
|
|
|
|
[Processo](processo)
|
|
|
|
</th>
|
|
|
|
<th>
|
|
|
|
|
|
|
|
[Design/Mockups](design_mockups)
|
|
|
|
</th>
|
|
|
|
<th>
|
|
|
|
|
|
|
|
[Configuração](configuracao)
|
|
|
|
</th>
|
|
|
|
<th>
|
|
|
|
|
|
|
|
[Arquitetura](arquitetura)
|
|
|
|
</th>
|
|
|
|
<th>
|
|
|
|
|
|
|
|
[Código](codigo)
|
|
|
|
</th>
|
|
|
|
<th>
|
|
|
|
|
|
|
|
[**BD**](banco_dados)
|
|
|
|
</th>
|
|
|
|
<th>
|
|
|
|
|
|
|
|
[Utilização](utilizacao)
|
|
|
|
</th>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
|
|
# Documentação do Banco de dados
|
|
# Documentação do Banco de dados
|
|
|
|
|
... | @@ -12,9 +50,7 @@ Neste projeto, utilizamos o PostgreSQL 12 como nosso sistema de gerenciamento de |
... | @@ -12,9 +50,7 @@ Neste projeto, utilizamos o PostgreSQL 12 como nosso sistema de gerenciamento de |
|

|
|

|
|
|
|
|
|
- **Desempenho**: O PostgreSQL é conhecido por seu desempenho excepcional, especialmente quando se trata de consultas complexas e grandes conjuntos de dados.
|
|
- **Desempenho**: O PostgreSQL é conhecido por seu desempenho excepcional, especialmente quando se trata de consultas complexas e grandes conjuntos de dados.
|
|
|
|
|
|
- **Confiabilidade**: É altamente confiável, com suporte a transações ACID (Atomicidade, Consistência, Isolamento e Durabilidade) para garantir a integridade dos dados.
|
|
- **Confiabilidade**: É altamente confiável, com suporte a transações ACID (Atomicidade, Consistência, Isolamento e Durabilidade) para garantir a integridade dos dados.
|
|
|
|
|
|
- **Escalabilidade**: O PostgreSQL é escalável e pode lidar com cargas de trabalho crescentes à medida que o projeto se expande.
|
|
- **Escalabilidade**: O PostgreSQL é escalável e pode lidar com cargas de trabalho crescentes à medida que o projeto se expande.
|
|
|
|
|
|
### Sequelize como ORM
|
|
### Sequelize como ORM
|
... | @@ -26,47 +62,44 @@ Para facilitar a comunicação com o banco de dados PostgreSQL 12 em nosso proje |
... | @@ -26,47 +62,44 @@ Para facilitar a comunicação com o banco de dados PostgreSQL 12 em nosso proje |
|
Principais vantagens do Sequelize:
|
|
Principais vantagens do Sequelize:
|
|
|
|
|
|
- **Abstração de Banco de Dados**: O Sequelize abstrai as complexidades do SQL, permitindo que os desenvolvedores usem código JavaScript/TypeScript para criar, consultar e manipular tabelas de banco de dados.
|
|
- **Abstração de Banco de Dados**: O Sequelize abstrai as complexidades do SQL, permitindo que os desenvolvedores usem código JavaScript/TypeScript para criar, consultar e manipular tabelas de banco de dados.
|
|
|
|
|
|
- **Modelos de Dados**: Podemos definir modelos de dados em JavaScript/TypeScript que correspondem às tabelas do banco de dados, tornando a manutenção e o desenvolvimento mais simples e organizados.
|
|
- **Modelos de Dados**: Podemos definir modelos de dados em JavaScript/TypeScript que correspondem às tabelas do banco de dados, tornando a manutenção e o desenvolvimento mais simples e organizados.
|
|
|
|
|
|
- **Migrações**: O Sequelize oferece suporte a migrações de banco de dados, o que facilita a atualização do esquema do banco de dados à medida que o projeto evolui.
|
|
- **Migrações**: O Sequelize oferece suporte a migrações de banco de dados, o que facilita a atualização do esquema do banco de dados à medida que o projeto evolui.
|
|
|
|
|
|
|
|
|
|
## Modelagem do banco (Sprint 1)
|
|
## Modelagem do banco (Sprint 1)
|
|
|
|
|
|
Este diagrama é a versão inicial do banco de dados, representando a estrutura fundamental sobre a qual o sistema de gerenciamento de usuários, comunidades e eventos estava sendo construído. À medida que o projeto evolui, é comum que ajustes sejam feitos para refinar a estrutura, adicionar novos recursos ou otimizar o desempenho.
|
|
Este diagrama é a versão inicial do banco de dados, representando a estrutura fundamental sobre a qual o sistema de gerenciamento de usuários, comunidades e eventos estava sendo construído. À medida que o projeto evolui, é comum que ajustes sejam feitos para refinar a estrutura, adicionar novos recursos ou otimizar o desempenho.
|
|
|
|
|
|
Conforme o desenvolvimento prossegue, podem ser feitas alterações como:
|
|
Conforme o desenvolvimento prossegue, podem ser feitas alterações como:
|
|
|
|
|
|
**Adicionar novas tabelas**: Por exemplo, se você decidir que os eventos devem ter subcategorias, uma nova tabela de "Subcategorias" poderia ser adicionada.
|
|
**Adicionar novas tabelas**: Por exemplo, se você decidir que os eventos devem ter subcategorias, uma nova tabela de "Subcategorias" poderia ser adicionada.
|
|
|
|
|
|
**Modificar tabelas existentes**: Você pode precisar de mais informações sobre os usuários, então novos campos podem ser adicionados à tabela "Usuário".
|
|
**Modificar tabelas existentes**: Você pode precisar de mais informações sobre os usuários, então novos campos podem ser adicionados à tabela "Usuário".
|
|
|
|
|
|
**Refinar relacionamentos**: Talvez você perceba que a relação entre usuários e comunidades é mais complexa e precise de uma nova tabela intermediária para melhor descrever essas conexões.
|
|
**Refinar relacionamentos**: Talvez você perceba que a relação entre usuários e comunidades é mais complexa e precise de uma nova tabela intermediária para melhor descrever essas conexões.
|
|
|
|
|
|
**Otimização para desempenho**: À medida que mais dados são adicionados, algumas estruturas podem ser alteradas para tornar as consultas mais rápidas.
|
|
**Otimização para desempenho**: À medida que mais dados são adicionados, algumas estruturas podem ser alteradas para tornar as consultas mais rápidas.
|
|
|
|
|
|
O processo de desenvolvimento e aprimoramento é iterativo e contínuo, garantindo que o banco de dados atenda às necessidades do sistema e proporcione uma experiência suave e eficiente para os usuários finais.
|
|
O processo de desenvolvimento e aprimoramento é iterativo e contínuo, garantindo que o banco de dados atenda às necessidades do sistema e proporcione uma experiência suave e eficiente para os usuários finais.
|
|
|
|
|
|

|
|

|
|
|
|
|
|
###Breve explicação da modelagem:
|
|
#### Breve explicação da modelagem:
|
|
|
|
|
|
**Usuário (User)**: Cada usuário tem informações como nome, e-mail, senha e uma associação a uma comunidade. Imagine isso como o perfil de uma pessoa em um site.
|
|
**Usuário (User)**: Cada usuário tem informações como nome, e-mail, senha e uma associação a uma comunidade. Imagine isso como o perfil de uma pessoa em um site.
|
|
|
|
|
|
**Comunidade (Community)**: Este é um grupo ou categoria que os usuários podem fazer parte. Por exemplo, uma comunidade pode ser um clube de leitura ou um grupo de corrida.
|
|
**Comunidade (Community)**: Este é um grupo ou categoria que os usuários podem fazer parte. Por exemplo, uma comunidade pode ser um clube de leitura ou um grupo de corrida.
|
|
|
|
|
|
**Eventos (Events)**: São atividades ou encontros que são criados no sistema. Cada evento tem um título, descrição, data, endereço, local, uma URL para uma foto e uma referência a quem criou o evento.
|
|
**Eventos (Events)**: São atividades ou encontros que são criados no sistema. Cada evento tem um título, descrição, data, endereço, local, uma URL para uma foto e uma referência a quem criou o evento.
|
|
|
|
|
|
**Eventos Pagos (PaidEvents)**: Alguns eventos podem ter um custo associado. Esta parte do banco de dados guarda informações sobre o preço desses eventos pagos.
|
|
**Eventos Pagos (PaidEvents)**: Alguns eventos podem ter um custo associado. Esta parte do banco de dados guarda informações sobre o preço desses eventos pagos.
|
|
|
|
|
|
**Tags (Tags)**: São rótulos ou palavras-chave que podem ser usados para descrever ou categorizar usuários e eventos. Por exemplo, uma etiqueta pode ser "esporte" ou "música".
|
|
**Tags (Tags)**: São rótulos ou palavras-chave que podem ser usados para descrever ou categorizar usuários e eventos. Por exemplo, uma etiqueta pode ser "esporte" ou "música".
|
|
|
|
|
|
**Associação de Usuários e Eventos (UserEvent)**: Indica quais usuários estão relacionados a quais eventos. Isso é usado, por exemplo, para saber quem se inscreveu em um determinado evento.
|
|
**Associação de Usuários e Eventos (UserEvent)**: Indica quais usuários estão relacionados a quais eventos. Isso é usado, por exemplo, para saber quem se inscreveu em um determinado evento.
|
|
|
|
|
|
**Associação de Usuários e Tags (UserTags)**: Mostra quais tags estão associadas a quais usuários. Isso pode ajudar a identificar interesses dos usuários.
|
|
**Associação de Usuários e Tags (UserTags)**: Mostra quais tags estão associadas a quais usuários. Isso pode ajudar a identificar interesses dos usuários.
|
|
|
|
|
|
**Associação de Eventos e Tags (EventTags)**: Da mesma forma, isso mostra quais tags estão associadas a quais eventos.
|
|
**Associação de Eventos e Tags (EventTags)**: Da mesma forma, isso mostra quais tags estão associadas a quais eventos.
|
|
|
|
|
|
## Modelagem do banco (Sprint 2 e adiante)
|
|
## Modelagem do banco (Sprint 2 e adiante)
|
|
|
|
|
... | | ... | |