[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Организация товаров и опций товаров в БД
amqpuTamuH4uk
Доброго времени суток

Задача такая, есть товар, у каждого товара есть разные опции и самое интересное, в зависимости тех или иных опций изменяется:
1) количество товара на складе
2) цена товара

поясню:
футболка - синяя - размер M, на складе 20 цена 900
футболка - красная - размер M, на складе 26 цена 800
футболка - синяя - размер XL, на складе 15 цена 850

остро стоит вопрос о том КАК в зависимости от опций товара хранить в БД то или иное количество на складе с такой или иной ценой

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

всем спасибо за потраченное на меня время
sergeiss
Общий (и краткий) ответ простой: http://ru.wikipedia.org/wiki/Нормализация_баз_данных wink.gif

Ну, вот пример приведу (люди + телефоны + имена), чтобы понятнее было:
Таблица 1
- id
- name

Таблица 2
- id
- phone

Таблица 3
- id
- email

Таблица 4
- id_name
- option_type (тут или phone, или email)
- id_type

Объединяющая таблица - четвертая. Указываем юзера и "пристегиваем" к нему телефоны и почты.
Такая структура позволяет иметь каждому юзер из таблицы 1 много телефонов и много разных почт. И, в то же время, разные юзеры могут иметь один и тот же номер телефона или одну и ту же почту.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
amqpuTamuH4uk
про нормальные формы я знаю... правда понимаю о чем идет речь только до 3(включительно) smile.gif
Цитата
Ну, вот пример приведу (люди + телефоны + имена)
получается для каждой новой опции мне городить таблицу? возможно я не правильно понял...

я подумывал о сруктуре похожую на эту:
products (stok, price by default)
idproduct, name, stok, price

options:
idoption, name, value

productoptions:
id, idproduct, idoption, stok, price

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

думаю меня понимают о чем я говорю...
sergeiss
Цитата (amqpuTamuH4uk @ 25.10.2012 - 23:03)
получается для каждой новой опции мне городить таблицу?

Вовсе не обязательно. То, что я написал ранее в этой теме, относится к фиксированному и небольшому по количеству набору опций.
Можно все опции сохранить в одной таблице (1). А в другой (2) таблице "пристегивать" опцию к айдишнику из "основной" таблицы (3) товаров. Получится так, что сколько опций, столько и записей в таблице (2) будет сделано для данного товара. Легко добавлять/удалять опции.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
amqpuTamuH4uk
Цитата
Можно все опции сохранить в одной таблице (1). А в другой (2) таблице "пристегивать" опцию к айдишнику из "основной" таблицы (3) товаров
так я и собирался делать, но опции мне нужны еще для управления ценой и кол. товара на складе, вот тут беда.
при таком раскладе этот вариант не пойдет
killer8080
amqpuTamuH4uk
думаю тут надо подойти с другой стороны. Футболка - это не есть сам товар, а такая же опция, как размер, цвет и т.п. Тогда все встанет на свои места.


Например так
products
id | type_id | quantity | price

types
id | name

options
id | name

prod2type
prod_id | type_id

prod2option
prod_id | option_id
amqpuTamuH4uk
Цитата
думаю тут надо подойти с другой стороны
именно так,
сделал, почти как в последнем посте но с некоторыми нюансами,
всем спасибо за участие smile.gif
Быстрый ответ:

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