Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Comunidade Universitaria
  • wiki
  • Wiki
  • banco_dados

banco_dados · Changes

Page history
Update banco_dados authored Nov 10, 2023 by Lucas Paprotzki Ehara's avatar Lucas Paprotzki Ehara
Hide whitespace changes
Inline Side-by-side
banco_dados.md
View page @ 150f46f4
| [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
![image](https://thedeveloperspace.com/wp-content/uploads/2019/09/PostgreSQL-Logo-Smaller.png) ![image](https://thedeveloperspace.com/wp-content/uploads/2019/09/PostgreSQL-Logo-Smaller.png)
- **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.
![image](uploads/52c36775c8bea39a55acf46108dd9c23/image.png) ![image](uploads/52c36775c8bea39a55acf46108dd9c23/image.png)
###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)
......
Clone repository
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • design_mockups
  • dividas_tecnicas
  • escopo
  • Home
  • processo