hoipy
Новичок
Привет!
Делаю проект аналог price.ru и.д. суть проекта сравнение цен интернет магазинов.
Столкнулся с такой проблемой.
Есть таблица
catalog - каталог товаров (8к записей)
id|section_id|name
shop - магазины (1к записей)
id|name|active
offers - предложения (уже 10мил, записей)
shop_id|catalog_id|price
В таблице offers - предложения магазинов из xml, у 1 магазина может быть несколько предложений к 1 товару. Есть товары где все 1000 магазинов продают.
city - города (в которые доставляет товары магазин) 85к записей
shop_id|city_id
Тут хранится ID магазина и ID города, т.е. магазин сам выбирает куда доставляет товар
Нужно получить товары которые есть в городе "1"
Делаю так
Запрос выполняется долго, что наверно логично, пока он сгруппирует все... а это запрос для выборки на самом сайте.
Мне нужно выбрать все товары на 1 стр 20 шт, которые продают магазины и доставляют в определенный город и с условием что магазин активный
Куда копать? может архитектура БД не правильная? Может кто-то имел опыт создания подобного проекта, подскажите.
Делаю проект аналог price.ru и.д. суть проекта сравнение цен интернет магазинов.
Столкнулся с такой проблемой.
Есть таблица
catalog - каталог товаров (8к записей)
id|section_id|name
shop - магазины (1к записей)
id|name|active
offers - предложения (уже 10мил, записей)
shop_id|catalog_id|price
В таблице offers - предложения магазинов из xml, у 1 магазина может быть несколько предложений к 1 товару. Есть товары где все 1000 магазинов продают.
city - города (в которые доставляет товары магазин) 85к записей
shop_id|city_id
Тут хранится ID магазина и ID города, т.е. магазин сам выбирает куда доставляет товар
Нужно получить товары которые есть в городе "1"
Делаю так
Код:
SELECT catalog.id, catalog.name FROM catalog
INNER JOIN (
SELECT catalog_id
FROM offers, shop, city
WHERE
offers.shop_id=shop.id
AND shop.active='yes'
AND city.shop_id=shop.id
AND city.city_id=1
GROUP BY catalog_id
) AS offer ON(offer.catalog_id=catalog.id)
LIMIT 20
Мне нужно выбрать все товары на 1 стр 20 шт, которые продают магазины и доставляют в определенный город и с условием что магазин активный
Куда копать? может архитектура БД не правильная? Может кто-то имел опыт создания подобного проекта, подскажите.