Как лучше добавить ряд характеристик для медиа?

Аватар пользователя nikkrop nikkrop 6 апреля в 18:12

Добрый день, помогите пожалуйста в решении задачи.

Дано:
- есть сайт с множеством Медиа (документов)
- эти Медиа используются в различных местах и выводятся по-разному

Нужно:
- для документов добавить несколько характеристик (в будущем их может быть больше)
- выводить документы если эти характеристики есть
- сделать по этим характеристикам фильтрацию с помощью search api (фасетов)

Вопрос:
Куда эти характеристики (поля) добавить?

1) Вариант 1:
- Добавить к существующему типу Медиа некоторое множество новых полей (характеристик) для фильтрации
- индексировать те Медиа у которых эти поля не пустые

2) Вариант 2:
- Вынести эти характеристики для фильтрации в промежуточную сущность и добавить к Медиа (например новый тип параграфа)
- индексировать Медиа у которых этот параграф есть

3) Вариант 3:
- Создать новый тип Медиа, для документов у которых эти характеристики есть.

Не могу решить как лучше сделать, с точки зрения производительности и правильности подхода, а так же удобства контент менеджера, чтобы в дальнейшем не возникло серьёзных проблем.

Комментарии

Аватар пользователя gun_dose gun_dose 6 апреля в 22:48

1 или 3 вариант, в зависимости от того, нужен ли реально тип медиа "документ без характеристик". Промежуточные сущности тут не нужны, тем более параграфы. С параграфами больше словите геморроя, т.к. у параграфов нет своих страниц, нет отдельных форм для редактирования и удаления.

Аватар пользователя vlucas vlucas 7 апреля в 8:59

Я так понял, что ему не нужны отдельные страницы и формы. Промежуточная сущность только для поиска и чтобы не хранить поля в самой медия, чтобы не пугать редакторов наличием огромного числа не всегда нужных полей

Аватар пользователя nikkrop nikkrop 7 апреля в 9:18

Спасибо за ответ, пожалуй остановлюсь на 1 варианте, просто форму редактирования разделю на несколько частей.

Аватар пользователя gun_dose gun_dose 7 апреля в 19:15

Можно добавить в форму раскрывающиеся филдсеты модулем field_group. Либо, если используются инлайн-формы, то добавить упрощённый режим отображения формы, где будет показано только необходимое.

Аватар пользователя sas@drupal.org sas@drupal.org 7 апреля в 9:50

Если

есть сайт с множеством Медиа (документов)

то

- Добавить к существующему типу Медиа некоторое множество новых полей (характеристик) для фильтрации
- индексировать те Медиа у которых эти поля не пустые