Mostrando postagens com marcador Padronização de Tabelas. Mostrar todas as postagens
Mostrando postagens com marcador Padronização de Tabelas. Mostrar todas as postagens

quinta-feira, 9 de setembro de 2010

Padronização das tabelas do Banco de Dados do Moodle


    A Plataforma Moodle é um sistema modular, ou seja, é um ambiente de gerenciamento de vários módulos voltado para gerenciamento de cursos.  A estrutura da base de dados reflete muito bem isso.

Padrão de Nome das  Tabelas

    As tabelas no banco de dados são compostas pelo prefixo e nome do módulo. mdl_ é o prefixo padrão. Isso pode ser alterado no momento de instalação.  Por exemplo, a tabela do módulo fórum é mdl_forum. Sendo mdl_ é o prefixo e forum é o nome do módulo. Todos os módulos seguem esse padrão.

Módulos que não são do Núcleo do Sistema
Os módulos que não compões o núcleo do sistema  ficam registradas na tabela mdl_modules. Para visualizar esses módulos,  basta fazer uma consulta na  tabela mdl_modules, usando o seguinte comando SQL:

SELECT id,name FROM mdl_modules
Resultado da pesquisa:
Id    name
1      assignment
2      chat
3      choice
4      data
5      forum
6      glossary
7      hotpot
8      journal
9      label
10      lams
11      lesson
12      quiz
13      resource
14      scorm
15      survey
16      wiki
17      workshop  

    Essa consulta foi feita nas versões 1.9.3 e 1.9.7 do Moodle. Isso já é padrão da versão 1.9+ A consulta lista os módulos que vêm na distribuição padrão do Moodle. A consulta traz os campos id (chave de identificação) e name (nome do módulo).

Tabela Principal e Secundária do Módulo
    A tabela principal de cada modulo é  prefixo + nome do módulo. Em cada módulo há outras tabelas, ou seja, tabelas secundárias. Por exemplo, a tabela principal do fórum é mdl_forum (prefixo + nome do módulo). O fórum é  composta por tópicos de discussões de comentários. Pois, as tabelas secundárias são:
  • mdl_forum_discussions – Tabela dos tópicos de discussão do fórum
  • mdl_forum_posts    - Tabela de comentários do fórum
  • mdl_forum_ratings    - Tabela de nota do fórum
    Nas tabelas secundárias dá para notar que o padrão do nome é prefixo + nome do módulo + funcionalidade do módulo.
    Embora tomamos como exemplo a tabela do fórum, esse padrão se aplica a todos os módulos.

Colunas Padrão nas Principais  Tabelas que não são do Núcleo do Sistema
    Até agora deu para entender a estrutura das tabelas dos módulos. Em cada tabela do módulo que não seja do núcleo do sistema, por padrão, deve as seguintes colunas:
  • id – Chave de identificação de cada registro da instância do módulo.
  • name – Nome  do registro da instância do módulo.
  • course – Id do curso  em que o módulo está vinculado. É a chave estrangeira da tabela mdl_course. Isso significa que cada registro da instancia de um módulo deve estar obrigatoriamente vinculado a um determinado curso.
Com esse padrão, torna possível montar uma rotina que faz leitura automática de todos os módulos. Para tornar isso mais claro, vamos ver um exemplo.
O comando SQL  abaixo faz uma consulta dos campos padrões do módulo fórum.

SELECT id, name, course FROM mdl_forum
Resultado da pesquisa:
id    name        course
1    Fórum Teste I     2
2    Fórum Teste II    2
3    Dúvidas Gerais    3
    A consulta retorna três registros de fórum. A coluna course indica que os fóruns registrados pertencem aos cursos cujo id são 2 e 3. A  mesma pesquisa pode ser aplicada a qualquer módulo, basta substituir a parte do nome da tabela após o prefixo pelo nome do outro módulo. Para pesquisar no módulo do questionário, o comando SQL seria:

SELECT id, name, course FROM mdl_quiz
    Isso não se aplica aos módulos que compões ao núcleo  do sistema tais como usuário, curso, log etc.

Tabelas dos módulos do sistema

mdl_user – Tabela principal do módulo do usuário
mdl_course  - Tabela principal do módulo do curso
mdl_log - Tabela principal do módulo de log
etc.
 
    Bem, você já deve ter sacado como é o padrão e a estrutura das tabelas do Moodle. Caso queira  explorar mais afundo isso, clique aqui, e acesse um arquivo com dump, ou seja, um backup da estrutura de todas as tabelas do Moodle 1.9.3 e com dados reais sobre curso. Estudar banco de dados não é uma tarefa muito mole, por isso lhe desejo boa sorte e muita paciência.