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

Banco de dados

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura 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

Banco de dados

Backend

Frontend

Qualidade