Persistência de Dados de Matrícula


Neste item, abordaremos os arquivos que definem a estrutura das tabelas do banco de dados referentes aos registros de matrícula, ou seja, o vínculo de um usuário a um determinado curso ou turma. Em primeiro lugar, faremos a análise na plataforma Badiu.Net e, em seguida, será abordado o cenário na plataforma Moodle.

1 - Persistência de Dados da Matrícula  na Plataforma Badiu.Net

 

Na plataforma Badiu.Net, existem três arquivos descritores da entidade responsáveis por gerar as tabelas no banco de dados sobre matrícula. A matrícula é gerada em três níveis: oferta da trilha,  versão do curso e turma. A oferta da trilha corresponde a um pacote de curso que o aluno deve fazer. No módulo SGA equivale a oferta de curso sistemático. Já a versão do curso se trata de novas ofertas de um curso. No módulo SGA equivale a oferta de disciplina  vinculado a oferta de curso sistemático  A turma são ofertas organizadas dentro da versão de um curso. No módulo SGA equivale a oferta de de uma disciplina . 

Arquivo

Descrição

BADIUNET_DIR_INSTALL/Badiu/Ams/EnrolBundle/Entity/AmsEnrolOffer.php

Este arquivo contém o descritor dos campos da tabela de matrículas relacionadas a trilha

BADIUNET_DIR_INSTALL/Badiu/Ams/EnrolBundle/Entity/AmsEnrolDiscipline.php

Este arquivo contém o descritor dos campos da tabela de matrícula de versão de um curso.

BADIUNET_DIR_INSTALL/Badiu/Ams/EnrolBundle/Entity/AmsEnrolClasse.php

Este arquivo contém o descritor dos campos da tabela de matrícula de turmas. Geralmente, é nesse nível que ocorre a sincronização com as matrículas do Moodle.

Os arquivos AmsEnrolOffer.php, AmsEnrolDiscipline.php e AmsEnrolClasse.php, quando executados pelo instalador, geram, respectivamente, as tabelas ams_enrol_offer, ams_enrol_discipline e ams_enrol_classe. As estruturas dessas tabelas são exibidas a seguir. Embora sejam bastante semelhantes, a principal diferença está na referência às tabelas de oferta da trilha, versão do curso e turma.

Layout I - Tabela da matrícula no nível da trilha
Segue a estrutura da tabela ams_enrol_offer gerada pela entidade AmsEnrolOffer.php

 

Layout II - Tabela da matrícula no nível da versão do curso
Segue a estrutura da tabela ams_enrol_discipline gerada pela entidade AmsEnrolDiscipline.php


Layout III - Tabela da matrícula no nível da turma

Segue a estrutura da tabela ams_enrol_classe gerada pela entidade AmsEnrolClasse.php

Nos layouts das três tabelas apresentadas acima, a única diferença está nas colunas de referência da unidade de anotação da matrícula: offerid, odisciplineid e classeid. Todas as demais colunas são idênticas. Essas colunas referenciam as chaves primárias (id) das respectivas instâncias nas tabelas ams_offer, ams_offer_discipline e ams_offer_classe. Essa distinção reflete as diferenças entre as ofertas da trilha, versão do curso e turma. Na tabela a seguir, detalharemos os demais campos que são comuns às três estruturas.

Campo

Descrição

userid

Referência à chave de identificação do usuário cadastrado na tabela system_user, correspondente à coluna id como chave estrangeira.

roleid

Referência à chave de identificação do perfil de matrícula na tabela ams_role, correspondente à coluna id como chave estrangeira. O perfil de matrícula define as permissões e os papeis associados ao usuário no contexto da matrícula. O item 3.2.1 apresenta a interface de gestão de perfis. São esses perfis que são mapeados na tabela de matrícula.

statusid

Referência à chave de identificação do status de matrícula na tabela ams_enrol_status, correspondente à coluna id como chave estrangeira. O status de matrícula define a situação do usuário no contexto da matrícula, podendo ser, por exemplo, cursando, aprovado ou reprovado. O item 3.2.2 apresenta a interface de gestão de status, sendo esses os status mapeados na tabela de matrícula.

timestart

Define a data de início da  matrícula. 

timeend

Define a data de término da  matrícula. 

lmssync

Define o status de sincronização da matrícula replicada com a plataforma Moodle.

Todas as colunas mencionadas acima são utilizadas no processo de replicação com a plataforma Moodle. No entanto, a coluna lmssync atualmente não está sendo utilizada para registrar a situação da sincronização da matrícula. Essa funcionalidade está em backlog e será implementada no primeiro semestre de 2025.

2 - Persistência de dados da  Matrícula  na Plataforma Moodle

Na plataforma Moodle, as tabelas mdl_role_assignments e mdl_user_enrolments registram os dados de matrícula, ou seja, a inscrição dos usuários nos cursos. Essas tabelas são definidas no arquivo descritor MOODLE_DIR_INSTALL/lib/db/install.xml, que concentra a definição da estrutura de todos os módulos que compõem o pacote padrão do Moodle.

O prefixo mdl_ é o padrão utilizado, mas, caso seja alterado durante a instalação, o nome da tabela assumirá o prefixo definido.

As tabelas mdl_role_assignments e mdl_user_enrolments possuem informações complementares. A primeira registra o perfil (como aluno ou tutor) e a alocação do usuário ao curso. Já a segunda foi introduzida como uma evolução da plataforma a partir da versão 2. Ela complementa as informações da tabela anterior, registrando instâncias específicas de matrícula, incluindo a data de início, a data de encerramento e a situação do registro, como ativos ou suspensos.

 

Layout da tabela mdl_role_assignments

A tabela a seguir especifica os campo que mais importantes da tabela mdl_role_assignments

Campo

Descrição

roleid

Referência à chave de identificação do perfil de inscrição na tabela mdl_role, correspondente à coluna id como chave estrangeira. A tabela mdl_role registra os perfis de usuário, como aluno, professor, gerente, entre outros.

contexid

Referência à chave de identificação do contexto de inscrição na tabela mdl_context, correspondente à coluna id como chave estrangeira. A tabela mdl_context registra os diferentes contextos, como curso, categoria de curso, atividade, entre outros.

userid

Referência à chave de identificação do usuário na tabela mdl_user, correspondente à coluna id como chave estrangeira.

Esta tabela define a alocação de um determinado usuário em um curso específico, associado a um perfil determinado. A coluna contextid, referenciada na tabela mdl_context, define o contexto do curso quando a coluna contextlevel dessa tabela tiver o valor 50.

Layout da tabela mdl_user_enrolments

A tabela a seguir especifica os campo que mais importantes da tabela mdl_user_enrolments

Campo

Descrição

status

Refere-se ao status de inscrição. O valor 1 indica uma inscrição inativa, enquanto o valor 0 representa uma inscrição ativa.

enrolid

Referência à chave de identificação do método de inscrição na tabela mdl_enrol, correspondente à coluna id como chave estrangeira. A tabela mdl_enrol registra as instâncias dos métodos de inscrição.

userid

Referência à chave de identificação do usuário na tabela mdl_user, correspondente à coluna id como chave estrangeira.

timestart

Define a data de início da inscrição

timeend

Define a data de término da inscrição

Esta tabela define dados complementares sobre a alocação de um determinado usuário em um curso específico, conforme definido na tabela mdl_role_assignments. Os complementos incluem o status de inscrição, o método de alocação do usuário no curso e o período de validade. Esses dados também são mapeados no processo de sincronização de matrícula.