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
  • GiftReminder
  • Wiki
  • Wiki
  • Banco de Dados

Banco de Dados · Changes

Page history
Atualização do diagrama do Banco de dados e detalhamento da modelagem dele authored Jun 24, 2024 by Arthur Antunes de Souza Both's avatar Arthur Antunes de Souza Both
Hide whitespace changes
Inline Side-by-side
Banco-de-Dados.md
View page @ 66f4adec
...@@ -14,6 +14,57 @@ Foi decidido utilizar um banco de dados relacional PostgreSQL, uma vez que a apl ...@@ -14,6 +14,57 @@ Foi decidido utilizar um banco de dados relacional PostgreSQL, uma vez que a apl
# Diagrama do banco de dados # Diagrama do banco de dados
![GiftReminder](uploads/42b7d4f75a044b30f78abce63739e5be/GiftReminder.png) ![GiftReminder](uploads/e14f5d81f4c7009e7bea56a7b3e8ee82/image.png)
# Modelagem do Banco de Dados # Modelagem do Banco de Dados
\ No newline at end of file A modelagem do banco de dados é bastante intuitiva, com uma tabela para cada entidade relevante ao projeto, com uma tabela auxiliar para as listas de desejos.
## Tabela `User`
Representa as entidades 'Usuário'. Suas colunas são:
- `user_id`, chave primária da entidade
- `username`, representa o nome de usuário no aplicativo, utilizado para encontrar usuários e é público a todos
- `name`, representa o nome real do usuário, é privado ao usuário por padrão
- `email`, representa o email do usuário, necessário para entrar em uma conta
- `password`, representa a senha do usuário
- `profile picture`, representa a foto do usuário, `null` por padrão
- `date_of_birth`, representa a data de nascimento do usuário, também é utilizada para determinar o seu aniversário
- `pix`, representa a chave pix do usuário, `null` por padrão
## Tabela `Friendship`
Representa as entidades 'Amizade'. Suas colunas são:
- `sender_id`, chave estrangeira, relacionada à coluna `user_id` da tabela `User` em uma relação de muitos-pra-muitos.
- `reciever_id`, chave estrangeira, relacionada à coluna `user_id` da tabela `User` em uma relação de muitos-pra-muitos.
- `status`, utilizada para definir o estado da amizade e do convite de amizade. Pode ser `Pending`, para pedidos de amizade enviados, mas que não foram respondidos, `Accepted`, para pedidos aceitos e representam uma amizade concreta e `Denied`, para pedidos recusados, não representam uma amizade.
Observação: A chave primária desta tabela é uma chave combinada das colunas `sender_id` e `reciever_id`.
## Tabela `Event`
Representa as entidades 'Evento'. Suas colunas são:
- `event_id`, chave primária da entidade
- `name`, representa o nome da entidade
- `date`, representa a data em que ocorrerá o evento
- `private`, indicador que representa se um evento poderá ser visto por qualquer usuário ou apenas pelo seu criador e pessoas autorizadas
- `admin_id`, chave estrangeira, relacionada à coluna `user_id` da tabela `User` em uma relação de muitos-pra-um.
- `description`, representa a descrição do evento, pode ser personalizada pelo usuário
## Tabela `Item`
Representa as entidades 'Item'. Suas colunas são:
- `item_id`, chave primária da entidade
- `name`, representa o nome da entidade
- `description`, representa a descrição da entidade
- `price`, representa o preço da entidade, com duas casas decimais
- `item_category`, representa uma categoria relacionada à entidade, pode ser utilizada para recomendações personalizadas para usuários
- `link`, representa um _endereço link_ que redirecionará o usuário à pagina da _web_ de uma loja parceira, para comprar o produto
- `picture_link`, representa um _endereço link_ para uma imagem da entidade na pagina de uma loja parceira
## Tabela `Wishlist`
Utilizada para representar uma lista de desejos de um usuário que pode ou não estar associada a um evento. Suas colunas são:
- `wishlist_id`, chave primária da entidade
- `owner_id`, chave estrangeira, relacionada à coluna `user_id` da tabela `User` em uma relação de muitos-pra-um.
- `event_id`, chave estrangeira, relacionada à coluna `event_id` da tabela `Event` em uma relação de um-pra-um.
## Tabela `Itemlist`
Utilizada para adaptar a relação muitos-pra-muitos entre itens e listas de desejos para uma relação muitos-pra-um e outra um-pra-muitos. Suas colunas são:
- `item_list_id`, chave primária da entidade
- `item_id`, chave estrangeira, relacionada à coluna `item_id` da tabela `Item` em uma relação de muitos-pra-um.
- `list_id`, chave estrangeira, relacionada à coluna `item_id` da tabela `Item` em uma relação de m-pra-muitos.
\ No newline at end of file
Clone repository
  • Banco de Dados
  • Configuracao
  • Design_Mockups
  • Git Workflow
  • arquitetura
  • escopo
  • gerencia
  • Home
  • qualidade