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.