Modelo Entidade Relacionamento
Modelo Entidade-Relacionamento (MER)
O Modelo Entidade-Relacionamento (MER) é uma descrição textual das entidades e relacionamentos que compõem a estrutura de um banco de dados. Diferentemente do DER, o MER apresenta as informações de forma textual, facilitando a compreensão e detalhamento dos componentes.
Tabelas e Atributos
Jogador
id_jogador(PK): Identificador único do jogador.nome: Nome do jogador.
Partida
id_partida(PK): Identificador único da partida.id_jogador(FK): Referência ao jogador proprietário da partida.data_inicio: Data e hora em que a partida começou.turno_atual: Número atual do turno.estado_partida: Estado da partida (ex: "em_andamento", "pausada", "encerrada").finalizada(bool): Define se a partida foi concluída.vitoria(bool): Define se o jogador venceu a partida.nivel: Nível atual do jogador dentro dessa partida.vida_restantes: Quantidade de vidas restantes (máx. 3).ouro_acumulado: Quantidade de ouro acumulado pelo jogador na partida (inicia em 0).limite_mao_atual: Quantidade máxima de cartas na mão permitidas no momento (inicia em 5).
Carta
id_carta(PK): Identificador único da carta.nome: Nome da carta (ex: "Elfo", "Dentadura", "Goblin Aleijado").tipo_carta: Tipo geral da carta:portatesourosubtipo: Subcategoria da carta:classe,raça,item,monstrodescricao: Descrição da carta, visível ao jogador.disponivel_para_virar: Indica se a carta pode ser sorteada do baralho no início de um turno.
SlotEquipamento
-nome (PK): Nome do slot de equipamento (ex: "mão direita","cabeça").
-capacidade: Quantidade de itens que o slot comporta.
-grupo_exclusao: Grupo de exclusão (ex: "somente um capacete", etc).
-descricao: Descrição do slot e sua função.
CartaPartida
id_carta_partida(PK): Identificador único da relação entre carta e partida.id_partida(FK): Referência à partida onde a carta está sendo usada.id_carta(FK): Referência à carta associada.zona: Define onde a carta está na partida. Pode ser:maoequipadomochiladescartada
CartaRaca
id_carta(PK, FK → Carta): Referência à carta que representa uma raça.nome_raca: Nome da raça (ex: Elfo, Anão, Orc, Halfling).descricao: Texto descritivo da raça.
PoderRaca
id_poder_raca(PK): Identificador único do poder.id_raca(FK → CartaRaca): Referência à carta de raça que possui esse poder.nome: Nome do poder (ex: Fuga Extra, Resistência à Maldição).descricao: Descrição do efeito de alto nível.
PoderRecompensaCondicional
id_poder_raca(PK, FK → PoderRaca): Relacionamento com o poder da raça.bonus_tipo: Tipo de bônus recebido (ex:tesouro_extra,nivel).bonus_quantidade: Quantidade do bônus (ex: +1 tesouro).condicao_tipo: Condição para ativar (ex:nivel_menor_que_monstro,multi_monstros).
PoderLimiteDeMao
id_poder_raca(PK, FK → PoderRaca): Relacionamento com o poder da raça.limite_cartas_mao: Novo limite de cartas na mão no fim do turno (ex: 6 para o Anão).
**PoderVendaMultiplicada
id_poder_raca(PK, FK → PoderRaca): Relaciona o poder com uma raça específica.multiplicador: Fator multiplicador aplicado ao valor de venda de cartas (ex: 2x, 3x).limite_vezes_por_turno: Quantas vezes esse poder pode ser usado por turno.
CartaClasse
id_carta(PK, FK → Carta): Referência à carta que representa uma classe.nome_classe: Nome da classe (ex: Guerreiro, Mago, Clérigo).
PoderClasse
id_poder_classe(PK): Identificador único do poder da classe.id_carta_classe(FK → CartaClasse): Referência à carta de classe.nome: Nome do poder.descricao: Descrição geral do efeito da classe.
PoderCombate
id_poder_classe(PK, FK → PoderClasse): Referência ao poder de classe.tipo_bonus: Tipo de bônus recebido (ex:combate,nivel_extra).max_cartas: Quantidade máxima de cartas que podem ser descartadas.afeta: Quem é afetado pelo poder (ex:monstro_morto_vivo,qualquer).bonus_por_carta: Quantidade de bônus por carta descartada.
PoderFuga
id_poder_classe(PK, FK → PoderClasse): Referência ao poder de classe.auto_fuga(bool): Se permite escapar automaticamente.max_descartes: Número máximo de cartas que podem ser descartadas para tentar fugir.
PoderFugaComBonus
id_poder_classe(PK, FK → PoderClasse): Referência ao poder de classe.bonus_por_carta: Bônus obtido por cada carta descartada.max_descartes: Número máximo de cartas descartadas.
PoderDescartaParaEfeito
id_poder_classe(PK, FK → PoderClasse): Referência ao poder de classe.efeito: Efeito ativado ao descartar as cartas (ex: "derrotar monstro").max_cartas: Número mínimo de cartas necessárias para ativar.
PoderEmpateVence
id_poder_classe(PK, FK → PoderClasse): Referência ao poder de classe.vence_empate(bool): Se o jogador vence o combate em caso de empate.
PoderRecuperaDescarte
id_poder_classe(PK, FK → PoderClasse): Referência ao poder de classe.tipo_descarte: Onde será feita a recuperação (ex:descarte_porta).descarta_para_usar(bool): Se é necessário descartar carta para ativar.quantidade_descarta: Número de cartas a descartar para recuperar.permite_escolher(bool): Se permite escolher qual carta recuperar.
CartaItem
id_carta(PK, FK → Carta): Referência à carta base que representa um item.bonus_combate: Quantidade de bônus fornecido ao jogador durante combates.valor_ouro: Valor em moedas de ouro que esse item possui (usado para vendas ou conversão em níveis).tipo_item: Tipo do item (ex:arma,armadura,acessorio, etc.).slot: Indica onde o item pode ser equipado (ex:cabeca,pe,corpo,1_mao,2_maos,nenhum).ocupacao_dupla(bool): Indica se o item ocupa mais de um espaço de slot (ex: uma arma de duas mãos).
RestricaoItem
id_restricao(PK): Identificador único da restrição.id_carta_item(FK → CartaItem): Referência ao item que possui essa restrição.tipo_alvo: Indica o tipo da restrição (classeouraca).valor_alvo: Valor do alvo restrito (ex:guerreiro,mago,orc,anao).permitido(bool): Define se o item só pode ser usado (true) ou não pode ser usado (false) pelo alvo especificado.
CartaMonstro
id_carta(PK, FK → Carta): Referência à carta que representa um monstro.nivel: Nível base do monstro.pode_fugir(bool): Indica se o jogador pode tentar fugir deste monstro.recompensa: Quantidade de tesouros recebidos ao derrotá-lo.tipo_monstro: Tipo do monstro (ex:morto_vivo,demonio,sem_tipo).
EfeitoMonstro
id_efeito_monstro(PK): Identificador único do efeito.id_carta_monstro(FK → CartaMonstro): Referência ao monstro que possui o efeito.nome: Nome descritivo do efeito ou penalidade.descricao: Texto explicativo do efeito ou "coisa ruim".
ModificadorContraAlvo
id_efeito_monstro(PK, FK → EfeitoMonstro): Referência ao efeito associado.alvo_tipo: Tipo do alvo afetado (ex:raca,classe,jogador).alvo_valor: Valor afetado (ex:elfo,anao,guerreiro).bonus_combate: Bônus de combate que o monstro recebe contra o alvo.
PenalidadePerdaNivel
id_efeito_monstro(PK, FK → EfeitoMonstro): Referência ao efeito associado.bonus_poder: Níveis perdidos (ex:2,3).
PenalidadeItem
id_efeito_monstro(PK, FK → EfeitoMonstro): Referência ao efeito associado.local_item: Local do item afetado (ex:cabeca,mao,corpo).
PenalidadeTransformacao
id_efeito_monstro(PK, FK → EfeitoMonstro): Referência ao efeito associado.perde_classe(bool): Se o jogador perde sua classe.perde_raca(bool): Se o jogador perde sua raça.vira_humano(bool): Se o jogador vira humano (sem classe e raça).
PenalidadeMorte
-id_efeito_monstro (PK, FK → EfeitoMonstro): Referência ao efeito associado.
-morte: Indica se o efeito causa a morte (TRUE ou FALSE).
Combate
id_combate (PK): Identificador único do combate.id_partida(FK): Referência à partida onde o combate ocorreu.id_carta_monstro(FK): Referência à carta do monstro enfrentado.monstro_vindo_do_baralho(bool): Indica se o monstro veio do baralho (true) ou da mão do jogador (false).vitoria(bool): Define se o jogador venceu o combate.coisa_ruim_aplicada(bool): Define se a penalidade da carta foi aplicada.nivel_ganho: Quantidade de níveis ganhos após o combate.data_ocorrido: Data e hora em que o combate foi registrado.
Progresso_Reino
id_partida (PK / FK para Partida): Referência à partida em andamento (relacionado à tabela Partida).id_reino (PK, FK): Referência ao reino do mapa (relacionado à tabela Mapa).
Mapa
nome (PK): Nome do mapa ou região (identificador único).descricao: Texto descritivo sobre o mapa ou reino.id_reino: Identificador do reino correspondente.nivel_min: Nível mínimo necessário para acessar o mapa.nivel_max: Nível máximo permitido no mapa.ordem: Posição/sequência do mapa dentro do progresso do jogo.
Histórico de Versão
| Data | Descrição | Autor |
|---|---|---|
| 25/04/2025 | Criação do artefato | Breno Fernandes |
| 02/05/2025 | Colaboração na construção do MER | Breno Fernandes, Maria Clara Sena, Ana Luiza, Mylena Mendonça |
| 11/06/2025 | Correções do MER | Maria Clara, Mylena Mendonça |
| 16/06/2025 | Correções do MER para a segunda entrega | Maria Clara, Mylena Mendonça |
| 07/07/2025 | Atualizações finais | Mylena Mnedonça, Maria Clara Sena, Ana Luiza |