Я хочу сделать некоторые темы подтемами других.
Допустим, у меня есть «Тема А». На странице темы А я добавлю кнопку «создать подтему». Это позволит пользователю создать новую тему — «Тема Б». Тема Б будет дочерней по отношению к теме А.
С точки зрения пользовательского опыта это означает следующее:
Я также могу добавить на страницу темы А кнопку «просмотреть все дочерние темы темы А», которая будет вести к списку дочерних тем темы А, например, темы Б и любых других тем, являющихся дочерними по отношению к теме А.
Как лучше всего это реализовать? (Я предполагаю, что придётся использовать плагин, что меня вполне устраивает.)
Обратите внимание: меня интересует только один уровень вложенности подтем, а не несколько уровней (several).
Ниже приведены некоторые варианты, которые, по моему мнению, могут подойти:
Категории (хотя, вероятно, это не лучший вариант)
Категории могли бы обеспечить функциональность, похожую на ту, что я задумал, но это может стать слишком громоздким, когда появится достаточное количество тем с подтемами (похоже, что создание новой категории для каждой родительской темы — это чрезмерно).
Или
Теги
На данный момент лучшее решение, которое я вижу, — использование тегов. То есть при нажатии кнопки «создать подтему» на странице темы А открывается новая тема, и я программно добавляю скрытый тег, например «Topic-A», который связывает её с темой А. Затем при нажатии кнопки «просмотреть все подтемы» темы А выполняется поиск по тегу «Topic-A».
Это кажется довольно чистым решением, за исключением того, что тегов будет очень много (по сути, один тег для каждой основной темы, что может привести к их значительному количеству).
Или
Пользовательские поля для тем
Другой вариант, который я рассматривал, — создание пользовательского поля для тем, содержащего массив идентификаторов дочерних тем этой темы. Это тоже может сработать, но, вероятно, потребует чуть более сложной реализации.
Например, мне придётся обновлять пользовательское поле основной темы только после создания подтемы; кроме того, мне нужно будет реализовать новый тип поиска — поиск всех тем, входящих в массив пользовательского поля основной темы, — вместо использования уже готовой функциональности поиска по тегам.
Есть ли ещё какие-то решения, которые я упустил?