Ротация элементов¶
- Table of contents
- Ротация элементов
При выборе вспомогательных элементов происходит их ротация - элементы категории перебираются по кругу.
Порядок программирования¶
Для обеспечения ротации - равномерного перебора элементов по кругу, необходимо для каждого элемента категории хранить дополнительную информацию - порядок программирования (ПП).
ПП имеет смысл только в отношении к конкретному расписанию. Т.о.: в расписании S элементы категории А имеют порядок программирования…
Порядок программирования представляет собой число. При выборе очередного элемента из категории выбирается элемент с наименьшим ПП, после чего его ПП становится больше всех остальных элементов. Фактически, становится равным максимуму из ПП всех эл-тов категории + 1.
Само численное значение ПП смысла не имеет, имеет смысл только соотношение порядков элементов одной категории в одном расписании.
Если отсортировать содержимое категории по нарастанию ПП, то на верхушке будет элемент, который должен использоваться следующим, а в низу окажется использованный предыдущий раз.
При отображении пользователю используется не само значение, а порядковый номер элемента при сортировке категории по нарастанию порядка программирования.
Использование в Digispot¶
Ротацию, основанную на ПП в Digispot используют следующие системы ротации:
- Простой ротатор
- МАГ2
- Сервис подмены элементов расписания
Внимание!
В Digispot 2 не существует возможности ротации одной категории одновременно в нескольких расписаниях, одна категория должна ротироваться только для единственного расписания.
Возможна независимая ротация одного и того же элемента МБД в нескольких категориях за счет использования множественной принадлежности одного элемента к нескольким категориям.
Пакеты¶
Для более детальной настройки ротации группа фонограмм в категории может объединятся в специальную группу, пакет фонограмм, которая ротируется так единое целое. Это более сложная форма ротации, ее использует только МАГ2.
Структура данных¶
В МБД есть таблица ph_to_attrvals, связывающая элемент с категорией. Порядок программирования хранится в поле sch_order.
Это поле может быть равно NULL, это означает, что данный элемент еще ни разу не был использован в данной категории, он будет использован первым.
Среди таких элементов сортировка выполняется по порядку их внесения в категорию.