Есть условная таблица с данными, скажем data, привязанная к пользователю. Каждый пользователь может создавать доп. поля в виде multiple select. Например, создаёт поле "Теги" и к нему добавляет теги. Соответственно имеем таблицу fields с названиями полей и fields_values с вариантами для выбора. Пользователь может создать неограниченное кол-во полей и опций для них.
Вопрос в том, как их увязать с таблицей data чтобы в дальнейшем было удобно делать выборку, сортировать, фильтровать по этим опциям?
Изначально была мысль делать связь many-to-many между таблицами data и fields_values. Но мне кажется это в корне не правильно.