Хранеие товаров и заказа в магазине.

2People

Новичок
Хранеие товаров и заказа в магазине.

Привет.
Хочу написать магазин который бы подходил для разных типов товаров.

В магазине должна быть функция выбора комплектации товара, например:
Телевизор = 1000руб.
Серебристый корпус за 100руб. дороже
Красный корпус на 200руб. дороже
......

У другого ТВ может быть только один цвет, но разные комплекктации пультов, а у третего - пульта может не быть.

Я решил помещать дополнительные поля (цвета, доп оборудование и т.д.) в формате XML в поле БД.

Но возникает проблема при заказе товара! Посетитель заказывает товар и набирает его комплектацию (как при покупке машины, можно выбрать АБС, кондиционер и т.д., только в магазине продаются не только машины, а различные товары).

Как лучше хранить заказаные товары в корзине?
Т.к. коплектация товаров хранится в XML в одно поле, то в корзине придётся хранить полностью сформированый товар (ну или id товара + выбраную комплектацию в XML), но это получается частичное дублирование данных :(

Подскажите пожалуйста, как мне лучше организовать хранение товаров и их модификаций/комплектаций, и как/где потом хранить заказаные товара в корзине?
 

amorfis

я стараюсь
Раз дублирование данных значит не продумал структуру БД. Я бы все дополнительные фишки хранил бы в отдельной таблице БД.
 

2People

Новичок
Автор оригинала: amorfis
Раз дублирование данных значит не продумал структуру БД. Я бы все дополнительные фишки хранил бы в отдельной таблице БД.
2000 товаров, в среднем по 5 доп. модификаций. 10 000 записей.
Это не слишком ли будет при выборке этих полей при открытии магазина 10-20 товаров на страничке = 10-20 раз выбрать из 10 000 записей
 

boombick

boombick.org
2People
а для чего тогда РБД придумали? Продумай получше структуру таблиц, связи.. Проставь нужные индексы.
 

2People

Новичок
От такого частичного дублирования данных база особо не выростет, а вот от 10 000 записей базе может быть гораздо тяжелее, чем от небольшого прибавления в весе. Так или нет?

Я спрашиваю, если надо, то как изменить структуру, а ответы заключаются в "продумай структуру".

"Подскажите пожалуйста, как мне лучше организовать хранение товаров и их модификаций/комплектаций, и как/где потом хранить заказаные товара в корзине?"
 

boombick

boombick.org
2People
сделай два варианта и прогони через ab. Сам и посмотришь, что лучше работает
 

tf

крылья рулят
2People, сначало опиши струтуру твоего могаза на и получиш ответ
и поподробнее про XML напиши что ты там решил сделать и для чего?
и скажи плизз что такое XML?
 

2People

Новичок
Я описал структуру магазина в первом посте. Напиши конкретнее, что не понятно в моём описании?
 

tf

крылья рулят
2People, про xml забыл... и организацию струтуры базы твого магазина

у меня дополнительные опции хранились в другом месте
в корзине было id товара +список id дополнительных опций
 

2People

Новичок
Таблица категорий: id, name
Табличца товаров: id, pid, name, extra_fields
XML: Моё представление о XML соответствует тому, что написано ... например в википедии http://ru.wikipedia.org/wiki/XML

-~{}~ 05.10.06 14:41:

Автор оригинала: tf
2People, про xml забыл... и организацию струтуры базы твого магазина

у меня дополнительные опции хранились в другом месте
в корзине было id товара +список id дополнительных опций
В каком месте они хранились? В отдельной от описания товара таблице?
И где хранились данные корзины (у меня можно добавлять товары в корзину до регистрации)?
 

rooot

Новичок
2People
а его лучше хранить у пользователя. Но в БД удобнее
------------
нужно определится?
 

2People

Новичок
:) Нужно.

Это зависит от того, как будут храниться данные.

Если доп. поля будут лежать в отдельной таблице, тогда данные корзины будут в куки, а если доп.поля будут в одном поле, тогда заказ будет в БД (т.к. кук не хватает по размеру)
 

2People

Новичок
"Это зависит от того, как будут храниться данные."
Этот вопрос пока не решился, т.к. мало мнений.
Пока только 3: моё, amorfisю и tf
 

tf

крылья рулят
2People
Если доп. поля будут лежать в отдельной таблице, тогда данные корзины будут в куки, а если доп.поля будут в одном поле, тогда заказ будет в БД (т.к. кук не хватает по размеру)
а сессия тебе на что?

Этот вопрос пока не решился, т.к. мало мнений.
Пока только 3: моё, amorfisю и tf
мнений достаточно, как делать решать тебе
 

2People

Новичок
Ну как минимум 2 месяца. У меня бывает, что я через 1-2 месяца опять захожу в магазин и покупаю или смотрю что заказывал до этого.
 
Сверху