Например товары сохраняются в одной таблице. Затем к каждому можно добавить тэг. Для тэгов отдельная таблица. Для связи товар-тэги третья таблица. При постмодерации нужно удалить определенный тэг.
* удаляю тэг
* удаляю связи товар-тэг
Проблема при выборке списка товаров. Одним запросом не получается - на 50 товаров 50 запросов за тэгами. Делать денормализацию для списка тэгов каждого товара - тогда при удалении тэга(модерации) эту таблицу сложно обновить, и может быть расхождение данных. Как правильно это решается на Symfony+Doctrine ?
grabbee, дорогой пользователь, настоятельно рекомендуем еще раз обратить самое пристальное внимание на п. 3.1 регламента работы сервиса (и, в особенности, на его последний абзац).
В противном случае, ваши вопросы будут удаляться по причине тег-спама, а систематические нарушения приведут к блокировке учетной записи.
Модератор, организация связи сущностей в базе данных к MySQL не отностится?
ORM (англ. Object-Relational Mapping, рус. объектно-реляционное отображение, или преобразование) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования
И тэг ООП лишний? У вас там много свободного времени и заняться нечем?
grabbee, я не вижу в действиях модератора ничего предосудительного. Ваш вопрос лишь косвенно касается удалённых тегов, либо он сформулирован не совсем корректно. Пользователи же, подписанные на те теги, что вы указали, получат (а кто-то уже мог получить) уведомления о вашем вопросе, что для них может быть нежелательным.
А спам, как известно, это и есть рассылка нежелательных уведомлений.
Nomad_77, Вопрос интересный. PHP - является подмножеством "Программирование" - тогда получат ли подписавшиеся на него пользователи вопрос из категории PHP без указания "Программирование". Если нет, то круто - значит PHP это не про программирование. Если да, то о каком "лишнем" уведомлении речь?...
В п.3.1 правил Сервиса говорится: В случае, если к вопросу подходит несколько тегов, один из которых является подмножеством другого (в качестве примера рассмотрим теги «PHP» и «Программирование»), следует указывать только наиболее конкретный тег (в данном примере это «PHP»). Поскольку, если будет указан более абстрактный тег («Программирование») это приведет к тому, что пользователи, интересующиеся другими подмножествами (например, другими языками программирования), получат нерелевантную информацию. Т.е. проблема не в том, что указанный вами тег не подходит, а в том, что в результате ваших действий большее число пользователей получает нерелевантные уведомления. Потому ваши действия и характеризуются как спам.
И это просто замечательно, что "пользователи, интересующиеся другими подмножествами (например, другими языками программирования), получат нерелевантную информацию" - только как это произойдет?
* Если кто-то подписан на "Ruby" - он не получит уведомление от вопроса PHP
* Но, если кто-то подписан на «Программирование» он не получит уведомление ни о "Ruby" ни о PHP
Ребята из stack###rflow кажется с этим не согласятся. Потому как множество вопросов от новичков изучающих фреймворк могут относиться непосредственно к нативному языку. Спорить нет смысла. Я написал о безобразии куда смог)) Вопрос по Симфони, это не ПХП, тогда уже и Доктрина не про Симфони
grabbee, когда я последний раз сюда заглядывал, здесь был НЕ stackoverflow.
у вас конкретный вопрос «как сделать Х на симфони и доктрине», эти теги и оставили.
grabbee, Вы когда в поликлинику с насморком приходите, то начинаете во все кабинеты подряд ломиться? Ведь по вашей логике, раз все сотрудники поликлиники учились лечить, то значит, чем большее их число Вы уведомите, тем больше шансов, что ваш насморк будет вылечен. Вам тут все пытаются объяснить, что такое поведение является, мягко скажем, нездоровым. На данном сервисе у тегов есть дополнительная роль - они определяют список пользователей, которые получат почтовые уведомления о новом вопросе. Т.е., указывать общие теги, равносильно тому, чтобы ломиться подряд во все кабинеты врачей, требуя вылечить ваш насморк. Чтобы такие нездоровые ситуации не возникали и как можно меньше людей получило нерелевантную их интересам информацию, в правилах был закреплен пункт 3.1., требующий указывать максимально приближенные к сути вопроса теги.
Вы можете сколько угодно оправдывать свое поведение демагогией в духе "если он врач, то и насморками должен интересоваться". Но, если, после всех полученных разъяснений, Вы продолжите демонстрировать такое деструктивное поведение, нарушая п.3.1, то ваш доступ к Сервису будет ограничен.
Я тоже думаю, что тут нужен QueryBuilder и объединение записей с помощью Left Join, тогда по тегам и фильтровать можно будет. Вообще сложные связки лучше всегда через QueryBuilder делать, дабы избежать большого числа запросов ИМХО.