Организация бд

Рейтинг: 1Ответов: 1Опубликовано: 04.12.2014

Есть список с продуктами. У каждого продукта есть список параметров, примерно до десяти у каждого. Уникальных параметров может быть десятки тысяч. Необходимо вывести группы товаров, в которых два и более параметра совпали. В качестве бд использую postgresql (массивы и прочие плюшки). Помогите придумать, как лучше организовать для данной задачи таблицы.

Ответы

▲ 1Принят

В принципе подойдет этот пример с тегами.

SELECT
  p.id,
  COUNT(*) AS cnt
FROM
  post AS p,
  post_tag AS pt
WHERE
  p.id = pt.post_id
  AND pt.tag_id IN (SELECT
                tag_id
              FROM
                post_tag
              WHERE
                post_id = 1
              )
  AND p.id != 1
GROUP BY
  p.id