[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правильно организовать акции товаров
lodas
Здравствуйте. Как правильно организовать акции для товаров в интернет-магазине. Какие поля должны быть в таблице "Акции", какие связи с таблицами, и как вообще это правильно реализовать?
Я попробовал так, но думаю это не лучший вариант:
AllesKlar
Все верно сделал.
Только имена полей не называй кирилицей, проблемы потом будут.

_____________
[продано копирайтерам]
Kopipaster
Я просто в таблице с продуктами делаю поля (`special`, `sostojanie`) указываю тип поля enum и выставляю список значений.
К примеру таблица goods (товары):
поле id ( Тип -int(11), Атрибуты -UNSIGNED, Дополнительно-AUTO_INCREMENT)
поле name ( Тип -varchar(255))
поле special ( Тип -enum('1', '2', '3'), По умолчанию -1)
поле sostojanie ( Тип -enum('1', '2', '3'), По умолчанию -1)

Допустим значения для поля `special`1=обычный товар, 2=распродажа, 3=акционная цена.
А значения для поля `sostojanie`1=новый товар, 2=новый уценённый товар, 3=пользованный товар.

Ну а потом при выборке из БД уже можно крутить как угодно.
пример 1:
"SELECT * FROM `goods`WHERE `special`='2'"

Так я получаю массив с товарами для распродажи

пример 2:
"SELECT * FROM `goods`"

Так я получаю массив со всеми товарами. Но могу при выводе на страницу задавать условия.
if($goods['special']='2') echo '<img src="1.jpg" title="Распродажа" />';
if($goods['special']='3') echo '<img src="2.jpg" title="Акционная цена" />';

bestxp
Kopipaster
я бы отказался от enum в бд в пользу
а) списка в коде, так как добавление новых будет проще
б) словарем типов в бд для простоты добавления


так же тогда было бы проще связать с картинками без лишних if уже на выводе

Далее а что если акция будет например для товаров купленных на сумму более 20 тыс, но в эту сумму не считаются другие акционные товары?) Это выдуманная задача, но может вдруг понадобиться wink.gif

Kopipaster
Цитата (bestxp @ 8.05.2014 - 18:42)
Kopipaster
я бы отказался от enum в бд в пользу
а) списка в коде, так как добавление новых будет проще
б) словарем типов в бд для простоты добавления


так же тогда было бы проще связать с картинками без лишних if уже на выводе

Далее а что если акция будет например для товаров купленных на сумму более 20 тыс, но в эту сумму не считаются другие акционные товары?) Это выдуманная задача, но может вдруг понадобиться wink.gif

Мало букв. Мысль не ясна.
bestxp
Kopipaster
Всё куда проще, у тебя есть немного лишней логики


if($goods['special']='2') echo '<img src="1.jpg" title="Распродажа" />';
if($goods['special']='3') echo '<img src="2.jpg" title="Акционная цена" />';


Если несколько акций то тут будет куда не приятный вывод

проще было бы если бы вывод был такой

if($goods){
foreach ($goods as $_){

echo "<img src=".$_['image']." title=".$_['special_name']." />";

}
}


А все названия акций хранились бы в одной таблице типа

id|special_name|image|dt_from|days|spec
и таблица связей
product_special_rel


тогда ты 1 сможешь делать акции, к ним картинки и тд, любого вида,
цеплять к товару сколь угодно каких угодно акций

можно акции оградить периодом действия с какого и сколько длится
ну и какой-то обработчик или что-то еще для акции, если потребуется какая то логика условий


и так же как в выборке

Но это уже куда сложнее выглядит, сказывается опыт проектирования по модели

И начало как раз у автора уже более верное, чем у тебя
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.