Я создаю веб-сайт с использованием Symfony2 и хочу, чтобы мои пользователи видели список элементов в соответствии с их профилем. Я ищу лучший способ сделать это.
У пользователей есть основные поля, прикрепленные к их профилю (имя, адрес электронной почты и т. Д.), Но я хочу добавить определенную информацию: пол, доход, интересы (такие разные типы: bool, integer, string и т. Д.). Некоторые поля и значения могут быть добавлены, изменены или удалены позже.
Элементы будут иметь критерии, так что они будут показаны соответствующим пользователям в соответствии с профилем пользователей.
На самом деле это немного похоже на торговый сайт с информацией, прикрепленной к продуктам, и тогда клиент может уменьшить количество отображаемых товаров благодаря списку критериев.
Я думал о том, чтобы поместить массив с различными критериями и значениями в сущность User, но я считаю это решение действительно плохим.
У вас есть представление о том, что может быть лучшей схемой Entity / DB для этого?
Это фильтрация, ваш запрос, который вы используете, чтобы получить ваш продукт, — это тот, который вы должны играть, а не пользователь.
Как я понял, вы хотите показывать разные продукты каждому пользователю в зависимости от его пола и т. Д.
Вам понадобится какая-то ссылка, чтобы узнать, какой продукт показать какому пользователю? Какую информацию вы хотите проверить на стороне продукта? у вас может быть объект, связанный с продуктом, с другой информацией, например, мужской пол, для продукта, который вы будете использовать в своем запросе, чтобы получить все select * from product where product.criteria.gender = user.gender
это просто упрощенный запрос, но он немного сложнее с объединением, если вы хотите сделать это в SQL или DQL
Других решений пока нет …