Совет. Есть ли смысл в следующем...

RHSC

Новичок
Совет. Есть ли смысл в следующем...

У заказчика есть интернет-магазин. Привожу в качестве примера часть БД:

таблица products:
product_id
product_quantity // количество товара на складе
product_date_last_update // дата, когда кол-во товара было изменено администратором
product_date_added // дата добавления товара в БД

таблица customers:
customer_id
customer_date_lost_login // дата последнего визита клиента
customer_date_register // дата регистрации клиента

В ИМ есть раздел - Новинки, в котором выводятся все товары отсортированные по product_date_added для незарегистрированных посетителей, для зарегистрированных выводятся все товары удовлетворяющие условию:
product_date_added > customer_date_lost_login

Заказчик просит сделать так, чтобы в разделе Новинки выводились не только товары, удовлетворяющие вышенаписанному условию, но и товары, у которых product_quantity было 0 во время customer_date_lost_login, а теперь product_quantity >0.

У меня есть такая идея:
Добавить поле customers_quantity в таблиц customers, куда после выхода клиента из магазина будут занесены все product_id с product_quantity=0 (к примеру (11, 158, 197, 78 и т.д.). Дальнейшие дествия понятны.

Не будет ли это слишком нагружать базу данных ? Сейчас в магазине бывает около 150 клиентов в день, а кол-во товара 500 штук. Я думаю что проблем быть не должно, но подскажите при каком числе клиентов день и кол-ве товара начнутся проблемы с БД ?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
У меня есть такая идея:
Добавить поле customers_quantity в таблиц customers, куда после выхода клиента из магазина будут занесены все product_id с product_quantity=0 (к примеру (11, 158, 197, 78 и т.д.). Дальнейшие дествия понятны.
Чего Вы этим хотите добиться?


Не будет ли это слишком нагружать базу данных ? Сейчас в магазине бывает около 150 клиентов в день, а кол-во товара 500 штук. Я думаю что проблем быть не должно, но подскажите при каком числе клиентов день и кол-ве товара начнутся проблемы с БД ?
При кривых руках достаточно 1-го запроса :)

Постройте нормально индексы
Проексплайньте потом все запросы

150 клиентов это не нагрузка
500 товаров - не база.

-~{}~ 12.09.07 17:48:

после выхода клиента из магазина будут занесены
По какому принципу будете "мониторить" выход клиента? Чтоб занести "его" товары в базу. (естественно если в этом есть смысл)
http://www.phpfaq.ru/na_tanke#where

-~{}~ 12.09.07 17:51:

.

Для "разгрузки" сервера посмотрите в сторону кешированния
http://phpclub.ru/faq/wakka.php?wakka=cahcing&v=12c2
 

hammet

Новичок
RHSC
Если ты переживаешь по поводу загрузки БД - пиши кастомеру в куки, но имхо лучше переделать структуру бд
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Если ты переживаешь по поводу загрузки БД - пиши кастомеру в куки
1. Ну и зачем "вагон" айдих товаров в куках?...

лучше переделать структуру бд
Зачем? Как?

-~{}~ 13.09.07 14:50:

По какому принципу будете "мониторить" выход клиента?
http://www.phpfaq.ru/na_tanke#where
 

Фанат

oncle terrible
Команда форума
я бы добавил в таблицу продуктов поле - дату "разнуления" количества.
если уж нельзя использовать дату добавления для этих целей.
 

Viktor_Rez

Новичок
Можно попробовать так
(product_date_added > customer_date_lost_login or product_date_last_update > customer_date_lost_login) and product_quantity > 0
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Так, чтобы можно было извлекать товары одним запросом
они и так извлекаются одним запросом, после логина клиента в магазин


(product_date_added > customer_date_lost_login or product_date_last_update > customer_date_lost_login) and product_quantity > 0
По моему в данном случае не будут использоваться индексы

RHSC
1 Клиент влогинивается в магазин.
2 Пишите в сессию его данные.
3. Получаете нужные товары, используя данные сессии.
 

RHSC

Новичок
Спасибо, учту все советы и пожелания, попробую сделать.
 
Сверху