Skip to content

Modelo Entidade Relacionamento

Reinaldo Zimmer Wendt edited this page Jun 7, 2025 · 1 revision

🗃️ Dicionário de Dados Detalhado

Esta seção fornece uma descrição detalhada de cada tabela no banco de dados, incluindo suas responsabilidades e os campos mais relevantes. Referentes ao seguinte modelo de dados:

diagrama-er


users

Armazena dados dos usuários do sistema.

  • email_verified_at: Data/hora em que o e-mail do usuário foi confirmado.
  • remember_token: Usado para manter sessões persistentes (funcionalidade "lembrar de mim").
  • role: Define o nível de permissão do usuário. Pode ser USER ou SUPER_USER.
  • active: Controla o status do usuário, onde 1 significa ativo e 0 bloqueado.
  • terms_and_lgpd: Indica se o usuário aceitou os termos de uso e a LGPD, marcado com 1 para sim.

module

Representa áreas funcionais do sistema (módulos) para rastrear ações no log de atividades.


project

Representa um projeto de pesquisa colaborativo.

  • c_papers: Quantidade total de artigos carregados no projeto.
  • planning, import, selection, quality, extraction: Campos que armazenam o progresso percentual de cada fase do projeto.
  • is_finished: Flag booleana que define se o projeto está encerrado.
  • feature_review: Indica a técnica de revisão adotada (ex: "Systematic Literature Review").
  • generic_search_string: Armazena a string de busca padrão do projeto, usada em várias bases de dados.

activity_log

Registra as ações executadas pelos usuários no sistema.

  • activity: Texto que descreve a ação realizada.

data_base

Define as bases de dados de pesquisa que podem ser utilizadas nos projetos (ex: ACM, Scopus, IEEE Xplore).

  • state: Estado da base de dados dentro de um projeto específico (ex: 'proposed', 'included').

project_databases

Tabela pivô que associa projetos (project) às bases de dados (data_base) que serão utilizadas.

  • search_string: String de busca personalizada para ser usada em uma base de dados específica dentro de um projeto.

bib_upload

Armazena o registro de cada upload de arquivo .bib e o vincula a um projeto e a uma base de dados.


criteria

Define os critérios de inclusão ou exclusão de estudos para um projeto.

  • pre_selected: Indica se o critério já vem ativado por padrão ao criar um projeto.
  • rule: Define a regra de aplicação do critério (ex: ALL = aplicar em todos os casos).

domain

Define as áreas temáticas ou domínios de pesquisa que podem ser associados a um projeto (ex: Inteligência Artificial, Bioinformática).


status_selection

Tabela de domínio que define os status possíveis durante a fase de triagem de artigos (ex: Accepted, Rejected, Unclassified).


status_qa

Tabela de domínio que define os status possíveis na etapa de avaliação de qualidade dos artigos.


general_score

Define faixas de pontuação e seus respectivos rótulos para a avaliação geral de artigos em um projeto.

  • id_project: Chave estrangeira que vincula a faixa de pontuação a um projeto específico.
  • start, end: Definem a faixa de nota (ex: de 0 a 10).
  • description: Rótulo descritivo para a faixa (ex: "Alta Qualidade", "Média Qualidade").

status_extraction

Lista os status possíveis para a fase de extração de dados de um artigo (ex: Pending, Done, In Progress).


status_snowballing

Define os status para artigos inseridos através da técnica de snowballing.

  • created_at, updated_at: Timestamps para rastreamento de criação e modificação do registro.

papers

Tabela central que contém os dados dos artigos (estudos) importados para os projetos.

  • id_bib: Chave estrangeira para o arquivo .bib de origem do artigo.
  • abstract, keywords, doi, journal: Campos que armazenam os dados bibliográficos do artigo.
  • data_base: Indica a base de dados de onde o artigo foi extraído.
  • status_selection, status_qa, status_extraction, status_snowballing: Chaves estrangeiras que apontam para o status atual do artigo em cada fase.
  • id_gen_score: Chave estrangeira para a pontuação geral atribuída ao artigo.
  • check_status_selection, check_qa: Flags que marcam se houve dupla verificação nas etapas de seleção e qualidade.
  • note: Campo de texto para comentários ou observações gerais sobre o artigo.

levels

Define os níveis de participação ou papéis que um usuário pode ter em um projeto (ex: Coordenador, Revisor, Leitor).


members

Tabela pivô que associa usuários (users) a projetos (project), definindo seu nível de participação.

  • id_user, id_project, level: Chaves estrangeiras para o usuário, o projeto e o nível.
  • invitation_token: Token usado para convites de participação no projeto via link.
  • status: Estado do convite (pending, accepted, declined).

evaluation_criteria

Registra a avaliação dos critérios de inclusão/exclusão feita por um membro sobre um artigo específico.

  • id_criteria: A qual critério a avaliação se refere.
  • id_paper: A qual artigo a avaliação se refere.
  • id_member: Qual membro realizou a avaliação.

types_question

Define os tipos de questões que podem ser usadas na extração de dados (ex: Multiple Choice, Free Text, Numeric).


question_extraction

Armazena as perguntas customizadas para a etapa de extração de dados de um projeto.

  • id: Código lógico da pergunta (ex: Q1, Q2).
  • type: Refere-se ao tipo da questão, definido na tabela types_question.
  • id_project: Vincula a questão a um projeto específico.

options_extraction

Lista as opções de resposta disponíveis para questões de extração de múltipla escolha.

  • id_de: Chave estrangeira para a pergunta (question_extraction) à qual esta opção pertence.

evaluation_ex_op

Armazena as respostas (opções selecionadas) dadas por membros a questões de extração.

  • id_qe: A questão de extração (question_extraction) que foi respondida.
  • id_option: A opção (options_extraction) que foi selecionada.
  • id_paper: O artigo que está sendo avaliado.

evaluation_ex_txt

Armazena respostas textuais e livres dadas por membros a questões de extração.

  • text: Conteúdo de texto livre inserido como resposta.

question_quality

Define as perguntas usadas na etapa de avaliação de qualidade dos artigos de um projeto.

  • weight: Peso da pergunta no cálculo da nota final de qualidade.
  • min_to_app: Escore mínimo necessário para que a questão seja considerada válida.
  • id_project: Vincula a pergunta a um projeto específico.

score_quality

Define as possíveis respostas (e seus escores) para as questões de avaliação de qualidade.

  • score_rule: Nome da regra ou opção de resposta (ex: "Sim", "Parcialmente", "Não").
  • score: Pontuação numérica atribuída à resposta.
  • id_qa: Chave estrangeira para a pergunta de qualidade (question_quality) à qual esta opção pertence.

evaluation_qa

Armazena a resposta de um membro a uma pergunta de qualidade para um artigo específico.

  • id_member, id_paper, id_qa: Chaves estrangeiras para o participante, o artigo e a pergunta.
  • id_score_qa: A resposta (score_quality) escolhida pelo membro.
  • score_partial: A nota parcial calculada para esta resposta.

failed_jobs

Registra tarefas em background (jobs) que falharam durante a execução no sistema.

  • payload: Os dados da tarefa que falhou.
  • exception: A mensagem de erro ou exceção que causou a falha.

keyword, language, term, synonym, study_type

Tabelas de domínio que armazenam, respectivamente: palavras-chave, idiomas, termos de busca, sinônimos e tipos de estudo que podem ser associados a projetos.


project_languages, project_study_types

Tabelas pivô que associam, respectivamente, um projeto aos idiomas e aos tipos de estudo que ele contempla.


permissions, roles, level_permission, role_has_permissions, model_has_permissions, model_has_roles

Conjunto de tabelas do pacote spatie/laravel-permission para gerenciar o controle de acesso baseado em papéis (RBAC). Elas definem permissões granulares, agrupam-nas em papéis (roles) e associam esses papéis/permissões a usuários.


migrations

Tabela interna do framework Laravel para controlar quais migrações de banco de dados já foram executadas.

  • migration: Nome do arquivo de migração.
  • batch: Número do lote em que a migração foi executada.

paper_decision_conflicts

Registra conflitos de decisão entre membros sobre o status de um artigo e sua resolução.

  • phase: Fase do processo onde ocorreu o conflito (ex: selection, quality).
  • old_status_paper, new_status_paper: O status anterior e o novo status após a resolução.
  • note: Justificativa para a alteração.

papers_qa, papers_qa_answer, papers_selection, papers_snowballing

Tabelas que armazenam os resultados consolidados e individuais das avaliações feitas por membros nas fases de QA, Seleção e Snowballing.


password_reset_tokens, password_resets

Tabelas usadas pelo Laravel para gerenciar a funcionalidade de redefinição de senha.

  • email: O e-mail do usuário que solicitou a redefinição.
  • token: O token de verificação enviado ao usuário.
  • created_at: Data de criação do token para controle de expiração.

personal_access_tokens

Armazena tokens de autenticação para APIs, geralmente usados pelo Laravel Sanctum.

  • tokenable_type, tokenable_id: Referência polimórfica à entidade autenticada (geralmente User).
  • token: O hash do token de acesso.
  • abilities: As permissões associadas ao token.

qa_cutoff

Define a nota de corte (cutoff) para a avaliação de qualidade dos artigos de um projeto.

  • id_general_score: O valor mínimo de nota aceitável na avaliação.
  • id_project: O projeto ao qual esta regra de corte se aplica.

research_question

Armazena as questões de pesquisa formais definidas para um projeto.

  • id: Código identificador da questão (ex: RQ1, RQ2).

search_strategy

Registra a estratégia de busca geral adotada para um projeto.

  • description: Campo de texto que explica a estratégia (ex: abordagem booleana, PICO).