amqpuTamuH4uk
25.10.2012 - 20:16
Доброго времени суток
Задача такая, есть товар, у каждого товара есть разные опции и самое интересное, в зависимости тех или иных опций изменяется:
1) количество товара на складе
2) цена товара
поясню:
футболка - синяя - размер M, на складе 20 цена 900
футболка - красная - размер M, на складе 26 цена 800
футболка - синяя - размер XL, на складе 15 цена 850
остро стоит вопрос о том КАК в зависимости от опций товара хранить в БД то или иное количество на складе с такой или иной ценой
жду любых предложений и примеров решения, мне много не надо, просто направьте в нужное русло, дальше я сам (интересует только оптимальная структура необходимых таблиц)
всем спасибо за потраченное на меня время
sergeiss
25.10.2012 - 21:41
Общий (и краткий) ответ простой:
http://ru.wikipedia.org/wiki/Нормализация_баз_данных 
Ну, вот пример приведу (люди + телефоны + имена), чтобы понятнее было:
Таблица 1
- id
- name
Таблица 2
- id
- phone
Таблица 3
- id
- email
Таблица 4
- id_name
- option_type (тут или phone, или email)
- id_type
Объединяющая таблица - четвертая. Указываем юзера и "пристегиваем" к нему телефоны и почты.
Такая структура позволяет иметь каждому юзер из таблицы 1 много телефонов и много разных почт. И, в то же время, разные юзеры могут иметь один и тот же номер телефона или одну и ту же почту.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
amqpuTamuH4uk
25.10.2012 - 23:03
про нормальные формы я знаю... правда понимаю о чем идет речь только до 3(включительно)

Цитата |
Ну, вот пример приведу (люди + телефоны + имена) |
получается для каждой новой опции мне городить таблицу? возможно я не правильно понял...
я подумывал о сруктуре похожую на эту:
products (stok, price by default)
idproduct, name, stok, price
options:
idoption, name, value
productoptions:
id, idproduct, idoption, stok, price
такая структура была бы самое то, НО как быть если на цену товара одновременно влияет более одной опции, вот тут я в ступоре
думаю меня понимают о чем я говорю...
sergeiss
26.10.2012 - 09:27
Цитата (amqpuTamuH4uk @ 25.10.2012 - 23:03) |
получается для каждой новой опции мне городить таблицу? |
Вовсе не обязательно. То, что я написал ранее в этой теме, относится к фиксированному и небольшому по количеству набору опций.
Можно все опции сохранить в одной таблице (1). А в другой (2) таблице "пристегивать" опцию к айдишнику из "основной" таблицы (3) товаров. Получится так, что сколько опций, столько и записей в таблице (2) будет сделано для данного товара. Легко добавлять/удалять опции.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
amqpuTamuH4uk
26.10.2012 - 10:09
Цитата |
Можно все опции сохранить в одной таблице (1). А в другой (2) таблице "пристегивать" опцию к айдишнику из "основной" таблицы (3) товаров |
так я и собирался делать, но опции мне нужны еще для управления ценой и кол. товара на складе, вот тут беда.
при таком раскладе этот вариант не пойдет
killer8080
26.10.2012 - 10:27
amqpuTamuH4uk
думаю тут надо подойти с другой стороны. Футболка - это не есть сам товар, а такая же опция, как размер, цвет и т.п. Тогда все встанет на свои места.
Например так
products
id | type_id | quantity | price
types
id | name
options
id | name
prod2type
prod_id | type_id
prod2option
prod_id | option_id
amqpuTamuH4uk
26.10.2012 - 22:06
Цитата |
думаю тут надо подойти с другой стороны |
именно так,
сделал, почти как в последнем посте но с некоторыми нюансами,
всем спасибо за участие
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.