Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Не могу создать оптимальную БД


Автор: Ky4er 1.9.2011, 15:58
Есть таблица с объявлениями и таблица с полями-значениями для объявлений. Из чего следует что набор полей у объявлений разный. Пользователь на спец форме выбирает интересующие его поля и значения, после чего нужно сохранить его вариант выборки. Затем при добавлении нового объявления нужно определить каким пользователям следует отправить уведомление о добавлении интересующего их объявления. Я не могу придумать оптимальный вариант хранения пользовательских критериев и собственно самого процесса выборки в процессе создания объявления. Т.е. каким запросом можно было бы выбрать пользователей, заинтересованных в созданом объявлении. Критерии бывают двух видов - имя-значение и имя-дипазон. Я считаю что нужно будет в создать таблицу для хранения критериев в виде идентификатор_выборки_пользователя-критерий. Таким образом при создании объявления можно будет выбрать все идентификаторы выборок пользователей, критерии которых удовлетворяются создаваемым объявлением. Но проблема в том что объявление должно удовлетворять всем критериям из выборки пользователя, а мой метод этого не учитывает.

Автор: Akina 1.9.2011, 17:39
Цитата(Ky4er @  1.9.2011,  16:58 Найти цитируемый пост)
объявление должно удовлетворять всем критериям из выборки пользователя, а мой метод этого не учитывает. 

Код

having count(distinct message_id) = count(distinct criteria_id)

Автор: Ky4er 1.9.2011, 23:49
Вы бы не могли пояснить этот код? Что делает функция count я понимаю, но общий смысл мне не ясен.

Автор: Akina 2.9.2011, 07:34
Ky4er, а вы просто переведите на русский, как фразу. SQL создавался именно для этого...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)