Skip to main content

Modelo Lógico

Este documento descreve o modelo lógico do projeto, incluindo as entidades, atributos e relacionamentos entre elas.

Entidades e Atributos

1. User

  • Descrição: Representa os usuários do sistema.
  • Atributos:
    • id (PK): Identificador único do usuário (tipo bigint).
    • active: Indica se o usuário está ativo (tipo boolean).
    • name: Nome do usuário (tipo varchar(30)).
    • surname: Sobrenome do usuário (tipo varchar(30)).
    • email: E-mail do usuário (tipo varchar(50)).
    • password: Senha do usuário (tipo varchar(255)).
    • data_register: Data de registro do usuário (tipo DateTime).
    • data_update: Data da última atualização do usuário (tipo DateTime).
    • deleted_at: Data de exclusão do usuário (tipo DateTime).

2. Episodes

  • Descrição: Representa os episódios disponíveis no sistema.
  • Atributos:
    • id (PK): Identificador único do episódio (tipo bigint).
    • name: Nome do episódio (tipo varchar(100)).
    • air_date: Data de exibição do episódio (tipo Date).
    • episode_code: Código do episódio (tipo varchar(30)).

3. Characters

  • Descrição: Representa os personagens do sistema.
  • Atributos:
    • id (PK): Identificador único do personagem (tipo bigint).
    • name: Nome do personagem (tipo varchar(100)).
    • species: Espécie do personagem (tipo varchar(50)).
    • status: Status do personagem (tipo enum('ALIVE', 'DEAD', 'UNKNOWN')).
    • character_type: Tipo do personagem (tipo varchar(50)).
    • gender: Gênero do personagem (tipo enum('FEMALE', 'MALE', 'GENDERLESS', 'UNKNOWN')).
    • location_id (FK): Chave estrangeira para a localização do personagem (tipo bigint).

4. Locations

  • Descrição: Representa as localizações dos personagens.
  • Atributos:
    • id (PK): Identificador único da localização (tipo bigint).
    • name: Nome da localização (tipo varchar(100)).
    • dimension: Dimensão da localização (tipo varchar(50)).
    • location_type: Tipo da localização (tipo varchar(20)).

5. Favorites_Episodes

  • Descrição: Relaciona usuários com episódios favoritos.
  • Atributos:
    • id (PK): Identificador único do favorito (tipo bigint).
    • episode_id: Chave estrangeira para o episódio favorito (tipo bigint).
    • user_id: Chave estrangeira para o usuário (tipo bigint).

6. Favorites_Characters

  • Descrição: Relaciona usuários com personagens favoritos.
  • Atributos:
    • id (PK): Identificador único do favorito (tipo bigint).
    • character_id: Chave estrangeira para o personagem favorito (tipo bigint).
    • user_id: Chave estrangeira para o usuário (tipo bigint).

7. Favorites_Locations

  • Descrição: Relaciona usuários com localizações favoritas.
  • Atributos:
    • id (PK): Identificador único do favorito (tipo bigint).
    • location_id: Chave estrangeira para a localização favorita (tipo bigint).
    • user_id: Chave estrangeira para o usuário (tipo bigint).

Relacionamentos

  • User → Favorites_Episodes: Um usuário pode ter vários episódios favoritos (relacionamento 1,n).
  • User → Favorites_Characters: Um usuário pode ter vários personagens favoritos (relacionamento 1,n).
  • User → Favorites_Locations: Um usuário pode ter várias localizações favoritas (relacionamento 1,n).
  • Characters → Locations: Vários personagens estão associados a uma localização (relacionamento n,1).
  • Episodes → Favorites_Episodes: Um episódio pode ser favoritado por vários usuários (relacionamento 1,n).
  • Characters → Favorites_Characters: Um personagem pode ser favoritado por vários usuários (relacionamento 1,n).
  • Locations → Favorites_Locations: Uma localização pode ser favoritada por vários usuários (relacionamento 1,n).
Details

Modelo Lógico Modelo Logico