Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki 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
  • Lucky Draw
  • WikiWiki
  • Wiki
  • Banco de dados

Last edited by Denilson Kersting Araujo Jun 25, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Banco de dados

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Infra Código BD Backend Frontend Qualidade

Banco de Dados

Visão Geral

Este repositório documenta a estrutura do banco de dados do projeto, incluindo tabelas, atributos e relacionamentos. Juntamente com imagens e tabelas ilustrativas, e a descrição das ferramentas utilizadas.

Modelagem

O modelo abaixo apresenta a modelagem do banco de dados do projeto Lucky Draw, nele podemos ver quais tabelas do banco compõem o sistema. Com isso, podemos observar os atributos de cada tabela, bem como os tipos de cada um, e o relacionamento de cada uma por meio das ligações apresentadas utilizando a mesma nomenclatura disponível no dbdiagram.io.

diagrama_atualizado

Tabelas

License

Campo Tipo Descrição
id_license Integer (PK) Identificador único da licença
text Varchar Texto da licença
data_created Timestamp Data de criação da licença

User

Campo Tipo Descrição
id_user Integer (PK) Identificador do usuário
name Varchar Nome do usuário
nickname Varchar User
email Varchar Email
password Varchar Senha
bio Text Biografia
coins Integer Moedas
is_admin Boolean Tipo de usuário
offender_day Integer Dias de ofensiva
data_last_active Timestamp Última atividade
photo Varchar Foto do usuário
license_id Integer (FK) Licença do usuário
active Boolean Status da conta

Deck

Campo Tipo Descrição
id_deck Integer (PK) Identificador do baralho
name Varchar Nome do baralho
price Float Preço
number_cards Integer Número de cartas
art Varchar Arte

UserDeck

Campo Tipo Descrição
id_user_deck Integer (PK) Identificador
id_user Integer (FK) Usuário
id_deck Integer (FK) Baralho

Card

Campo Tipo Descrição
id_card Integer (PK) Identificador da carta
art Varchar Arte
id_deck Integer (FK) Baralho

DailyCards

Campo Tipo Descrição
id_daily_cards Integer (PK) Identificador
card1 Integer (FK) Carta 1
card2 Integer (FK) Carta 2
card3 Integer (FK) Carta 3
card4 Integer (FK) Carta 4
date Timestamp Data
id_user Integer ID do usuário associado ao DailyCards

Posts

Campo Tipo Descrição
id_post Integer (PK) Identificador do post
id_daily_cards Integer (FK) Identificador do DailyCards associado ao post
post_art Varchar Arte
post_type Varchar Tipo do post
number_reports Integer Número de denúncias
is_active Boolean Ativo
post_data Timestamp Data

Report

Campo Tipo Descrição
id_report Integer (PK) Identificador do reporte
id_user Integer (FK) Usuário
id_post Integer (FK) Post reportado
data_report Timestamp Data

Relacionamentos

  • Usuários podem possuir múltiplos Decks por meio da tabela UserDeck.
  • Cada Deck contém várias Cards.
  • O sistema gera um conjunto de DailyCards.
  • Usuários podem criar Posts associados a cartas.
  • Posts podem ser denunciados por usuários na tabela Report.

Ferramentas

PostgreSQL

O PostgreSQL é um Sistema Gerenciador de Banco de Dados Relacional de código aberto que proporciona escalabilidade e segurança no armazenamento e recuperação de dados. A modularidade da sua arquitetura junto a recursos como transações ACID (atomicidade, consistência, isolamento e durabilidade) e suporte para trabalhar com JSON (JavaScript Object Notation) fez com que o escolhessemos para este projeto. Além disso, o fato de ser um banco relacional facilita o aprendizado dado que é o tipo de tecnologia mais visto em disciplinas de banco no curso de Engenharia de Software.

DBeaver

Recomendamos o uso do DBeaver neste projeto para trabalhar com o banco de dados PostgreSQL porque ele oferece uma interface intuitiva, poderosa e unificada que facilita a visualização das tabelas, execução de queries e gerenciamento do banco como um todo. Além disso, o DBeaver é gratuito, multiplataforma e possui integração nativa com PostgreSQL, o que agiliza o desenvolvimento e minimiza erros, especialmente em trabalhos colaborativos.

Clone repository

imagem_2025-03-26_201248038

Lucky Draw

Home

Escopo e Cronograma

Processo

Design & Mockups

Configuração

Arquitetura

Infraestrutura

Código

Banco de dados

Backend

Frontend

Qualidade