У меня есть довольно специфичный сценарий использования, и я не уверен, подходит ли для него Discourse.
Я хотел бы создать платформу для обсуждений, посвящённую 5000–7000 комиксам. Однако мне не хочется размещать все обсуждения в рамках одной темы, так как в рамках одного комикса трудно отслеживать разные направления дискуссий. Поэтому я подумал создать «категорию» для каждого комикса, а под ней — отдельные темы. Кроме того, я читал, что это может создать нагрузку как на серверной, так и на клиентской стороне.
Отмечу, что навигация не является проблемой: у каждого комикса есть уникальный идентификатор, который известен участникам сообщества, поэтому никто не будет перебирать категории. Пользователь просто введёт идентификатор, чтобы найти нужную категорию.
Есть ли более подходящий способ реализовать аналогичную функциональность? Помогут ли теги?
Могу ли я принудительно требовать использования тегов в каждом сообщении? В идеале на форуме не должно быть ничего, что не относится ни к одному из комиксов.
Можно ли программно заполнять теги? Одна из моих идей — создать тему для каждого тега (я полагаю, это единственный способ создания тега), но я не смог найти много информации о процедурной генерации тем.
Именно так я поступаю в своём сообществе настольных игр: всякий раз, когда в мою базу данных добавляется (или переименовывается) настольная игра, создаётся или обновляется тег и два пользовательских топика.
Насколько я помню, когда я работал над этим, не было специального эндпоинта для создания одного тега (хотя при создании топика можно добавить новый), но мне удалось использовать пакетную загрузку тегов для решения этой задачи.
Я изучал похожий случай из практики США, где теги из одной группы тегов были обязательными и фактически использовались как структура верхнего уровня (заменяя категории).
В данный момент для тегов в атрибуте данных хранится только их название. Было бы здорово, если бы в атрибуте также хранилась их группа. Тогда мы могли бы различать группы тегов в пользовательском интерфейсе.
Я не знаю, как это сделать. Одно замечание: рендеринг, кажется, немного медленный. Я недостаточно опытный разработчик, чтобы объяснить или даже понять почему, но это может замедлить работу вашего форума, если вы будете использовать это на каждой странице.