Pular para conteúdo

Modelo Entidade-Relacionamento — District ZER0

O Modelo Entidade-Relacionamentos (MER) é uma ferramenta essencial na modelagem de dados, permitindo a representação gráfica de entidades, atributos e relacionamentos em um sistema. Ele serve como base para o desenvolvimento de bancos de dados relacionais, garantindo uma estrutura lógica e eficiente para o armazenamento e recuperação de informações. Neste documento, exploraremos os conceitos fundamentais do MER e sua aplicação prática.


Entidades e Atributos

1. Jogador

  • id (PK, inteiro): Identificador único do jogador
  • username (varchar): Nome de usuário
  • senha_hash (varchar): Hash da senha

2. Personagem

  • id (PK, inteiro): Identificador único do personagem
  • jogador_id (FK → Jogador): Dono do personagem
  • nivel (inteiro): Nível
  • vida (inteiro): Pontos de vida
  • experiencia (inteiro): Pontos de experiência
  • reputacao (inteiro): Reputação
  • carteira (inteiro): Créditos
  • ataque (inteiro): Poder de ataque
  • defesa (inteiro): Poder de defesa
  • faccao_id (FK → Faccao): Facção (opcional)
  • sala_atual_id (FK → Sala): Sala atual

3. Sala

  • id (PK, inteiro): Identificador único
  • nome (varchar): Nome da sala
  • tipo (varchar): Tipo da sala (normal, safe-zone, boss-room...)
  • descricao (texto): Descrição

4. Item

  • id (PK, inteiro): Identificador único
  • nome (varchar): Nome do item
  • tipo (varchar): Tipo (chip, arma, dado...)
  • descricao (texto): Descrição
  • raridade (varchar): Grau de raridade
  • valor (inteiro): Valor monetário/utilidade

5. Inventário (ItemInventario)

  • id (PK, inteiro): Identificador único
  • personagem_id (FK → Personagem): Dono do item
  • mob_id (FK → Mob, opcional): Origem do item
  • item_id (FK → Item): Item
  • quantidade (inteiro): Quantidade

6. Item na Sala (ItemSala)

  • id (PK, inteiro): Identificador único
  • sala_id (FK → Sala): Localização
  • item_id (FK → Item): Item disponível
  • quantidade (inteiro): Quantidade

7. Mob

  • id (PK, inteiro): Identificador único
  • nome (varchar): Nome do mob
  • tipo (varchar): Tipo (mob ou boss)
  • vida (inteiro): Vida
  • ataque (inteiro): Ataque
  • defesa (inteiro): Defesa
  • sala_id (FK → Sala): Sala onde está
  • drop_table (JSON): Tabela de drops

8. Missão

  • id (PK, inteiro): Identificador único
  • nome (varchar): Nome
  • descricao (texto): Descrição
  • recompensa (varchar): Tipo de recompensa
  • tipo (varchar): Tipo de missão
  • xp_requerido (inteiro): XP mínimo

9. Missão por Personagem (MissaoPersonagem)

  • id (PK, inteiro): Identificador único
  • personagem_id (FK → Personagem): Dono da missão
  • missao_id (FK → Missao): Missão
  • status (varchar): Estado (em andamento, completada, falhada)
  • progresso (inteiro): Percentual (0–100)

10. Facção (Faccao)

  • id (PK, inteiro): Identificador único
  • nome (varchar): Nome
  • descricao (texto): Descrição
  • reputacao (inteiro): Reputação global

11. Combate

  • id (PK, inteiro): Identificador único
  • personagem_id (FK → Personagem): Participante
  • mob_id (FK → Mob, opcional): Inimigo
  • data_hora (timestamp): Data/hora
  • resultado (varchar): Resultado (vitória, derrota)

Relacionamentos

Entidade Origem Relacionamento Entidade Destino Tipo de Relacionamento
Personagem pertence a Jogador N:1
Personagem está na Sala N:1
Personagem pertence a (opcional) Facção N:1 (opcional)
ItemInventario pertence a Personagem N:1
ItemInventario contém Item N:1
ItemInventario pertence a (opcional) Mob N:1 (opcional)
ItemSala está em Sala N:1
ItemSala contém Item N:1
Mob está em Sala N:1
MissaoPersonagem pertence a Personagem N:1
MissaoPersonagem refere-se a Missão N:1
Combate envolve Personagem N:1
Combate contra (opcional) Mob N:1 (opcional)

Histórico de Versão

Versão Data Descrição Autor(es)
1.0 30/04/2025 Adição do Modelo Relacional Guilherme Basílio
1.1 30/04/2025 Modifica Modelo Entidade Relacionamento Mateus Levy
1.2 1/05/2025 Adiciona mudanças Mateus Levy