Представление учителя в базе данных Moodle - PullRequest
0 голосов
/ 26 января 2019

Интересно, как инструктор представлен в обширной базе данных Moodle. Где находится конкретная таблица со столбцами атрибутов для хранения данных для каждого учителя?

Хотя есть что-то важное, например, диаграмма выше, мне нужно что-то, чтобы описать таблицу учителя.

Есть идеи?

Moodle ER diagram

снимок: http://www.examulator.com/er/

1 Ответ

0 голосов
/ 31 января 2019

Moodle имеет следующие архетипы по умолчанию для того, что вы называете инструктором;

  • Менеджер
  • coursecreator
  • editingteacher
  • Учитель

Пользователю может быть назначена одна из этих ролей в определенном контексте, таком контексте, как курс или, возможно, категория курса.

База данных хранит данные учителя в нескольких таблицах. Глядя на диаграмму схемы базы данных, которую вы показали, таблицы, которые вы ищете, находятся в группировке ролей. Конкретно роль и роль_присвоения. Связав эти таблицы с таблицами пользователя, контекста и курса, вы сможете найти сотрудников, связанных с курсами.

Примером функции для привлечения персонала, связанного с конкретным курсом, будет

function get_course_staff($courseid) {
    global $DB;

    $sql = "SELECT u.firstname,
                   u.lastname
              FROM {role_assignments} ra
             WHERE c.contextlevel = 50 // Numeric value of the course context
               AND c.instanceid = ?
               AND r.id < 5
              JOIN {role} r ON ra.roleid = r.id
              JOIN {user} u ON ra.userid = u.id
              JOIN {context} c ON ra.contextid = c.id
              JOIN {course} co ON c.instanceid = co.id
          ORDER BY r.sortorder ASC";
    return $DB->get_records_sql($sql, array($courseid));
}

Роль может быть назначена многим пользователям. Пользователь может иметь много ролей. Пользователю назначается роль в определенном контексте.

...