Добрый день, помогите пожалуйста в решении задачи.
Дано:
- есть сайт с множеством Медиа (документов)
- эти Медиа используются в различных местах и выводятся по-разному
Нужно:
- для документов добавить несколько характеристик (в будущем их может быть больше)
- выводить документы если эти характеристики есть
- сделать по этим характеристикам фильтрацию с помощью search api (фасетов)
Вопрос:
Куда эти характеристики (поля) добавить?
1) Вариант 1:
- Добавить к существующему типу Медиа некоторое множество новых полей (характеристик) для фильтрации
- индексировать те Медиа у которых эти поля не пустые
2) Вариант 2:
- Вынести эти характеристики для фильтрации в промежуточную сущность и добавить к Медиа (например новый тип параграфа)
- индексировать Медиа у которых этот параграф есть
3) Вариант 3:
- Создать новый тип Медиа, для документов у которых эти характеристики есть.
Не могу решить как лучше сделать, с точки зрения производительности и правильности подхода, а так же удобства контент менеджера, чтобы в дальнейшем не возникло серьёзных проблем.
Комментарии
1 или 3 вариант, в зависимости от того, нужен ли реально тип медиа "документ без характеристик". Промежуточные сущности тут не нужны, тем более параграфы. С параграфами больше словите геморроя, т.к. у параграфов нет своих страниц, нет отдельных форм для редактирования и удаления.
Я так понял, что ему не нужны отдельные страницы и формы. Промежуточная сущность только для поиска и чтобы не хранить поля в самой медия, чтобы не пугать редакторов наличием огромного числа не всегда нужных полей
Да, всё верно
Спасибо за ответ, пожалуй остановлюсь на 1 варианте, просто форму редактирования разделю на несколько частей.
Можно добавить в форму раскрывающиеся филдсеты модулем field_group. Либо, если используются инлайн-формы, то добавить упрощённый режим отображения формы, где будет показано только необходимое.
Если
то