запрос обучившихся студентов из БД

запрос обучившихся студентов из БД

by Mod Filbi -
Number of replies: 3

возникла необходимость получить выборку студентов, обучавшихся в определенных группах. версия мудл была 1.9, затем обновлена до 2.1.1. не получается получить состав студентов по старым группам, потому что хотя в таблице mdl_groups сохранились названия старых групп, но в таблице mdl_groups_members нет записей с их участием. кроме того, некоторые группы после окончания обучения вероятно либо удалялиь полностью, либо переименовывались и наполнялись другими слушателями, что тоже привело к некорректным данным  в БД. как вообще в идеале поступать  с отучившимися группами? полностью сохранять их название и состав и просто отчислять с курса? этот вопрос касается скорее 2.1, и в таком случае - как поступать с локальными и глобальными группами (глобальные-сохранять, локальные - удалять?), чтобы впоследствии можно было получать адекватные запросы по отучившимся студентам.

 

есть еще вопрос -  как можно из базы выцепить только студентов, исключив преподов, ассистентов и т.д.? мне приходят на ум только окольные способы (типа фильтра по полю описание в таблице пользователей, но пояснение о должности заполняется не всегда, либо выбрать только участников групп, но в группы также зачисляются и преподаватели, либо выбрать тех, кто зачислен в группы с определенной ролью, но такой таблицы я не нашла, есть только назначение роли в контекстах, но там есть не все; либо совсем уж извращенные методы, например исключить пользователей, которые редактировали оценки в форумах или заданиях - скорее всего это будут преподаватели). есть ли какое то более приличчное решение как отфильтровать слушателей в бд? спасибо

Sum of ratings: -
In reply to Mod Filbi

Re: запрос обучившихся студентов из БД

by Petr Zakharov -

1) Если нужна история, ведите архивные таблицы, в которых будет сохраняться история, в то время как в мудле она будет удаляться:

- таблицу пользователей;

- когда и в какую группу пользователь был зачислен, когда из группы был отчислен;

- когда и на какой курс пользователь был зачислен, когда с курса был отчислен.

2) под рукой нет мудла 2.1, есть 1.9, в нём делается select from mdl_role_assignments where roleid=5 и от него пляшете.

5 - это роль студента, соответственно вытаскиваете студентов по userid и курсы по контексту, в таблице mdl_context у курсов contextlevel=50.

В мудле 2.1 аналогично.

 

 

In reply to Petr Zakharov

Re: запрос обучившихся студентов из БД

by Mod Filbi -

спасибо за рекомендации!

с таблицей role_assigments  работать пробовала; например, пишу запрос select * from role_assignments where roleid='5' group by userid - выдает очень малое количество записей, явно не все слушатели (возможно, если слушатели зачислялись глобальной группой с ролью слушатель, в этой таблице их id не фиксируются?); другой вариант - исключить из запроса всех, кроме студентов, тогда число записей более менее адекватное но все равно не все; Даже если выбрать просто все уникальные значения userid из таблицы, их количество значительно меньше всех зарегистрированных в системе пользователей. Или старые назначения ролей также не сохраняются (имеется в виду, если пользователь отчислен из курса?)

In reply to Mod Filbi

Re: запрос обучившихся студентов из БД

by Petr Zakharov -

1) Я не знаю, чему у вас равна роль Слушатель, проверьте роли и значения в таблице mdl_role и сопоставьте их со значениями в таблице role_assignments.

2) по этому пункту Вы, я вижу, уже разобрались.

3) если пользователь отчислен, то привязка из role_assignments удаляется.