Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Организация хранения данных о готовой продукции

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: готовый продукт на основе комплектующих
retrogirl
Отправлено: 15 Февраля, 2012 - 08:26:23
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Добрый день.
Подскажите, пожалуйста, как грамотно организовать хранение данных. Есть таблица "Комплектующие" с полями id_product_k, name, price, price_sb, id_catalog_k. На основе данных из этой таблицы пользователь должен формировать различные варианты готовых сборок. Количество используемых комплектующих варьируется от 6 до 15.
Как мне сохранять данные о готовом продукте, чтоб еще на основе цен комплектующих формировалась цена готового продукта?
Мой вариант - это 2 таблицы. "Готовый продукт" (id_product_g, name, price, id_catalog_g) и "Сборка" (id_element, id_product_g, id_product_k). Но при добавлении нового продукта и редактировании как комплектующих, так и готового продукта приходится составлять кучу запросов и циклов.
Можно ли сделать попроще?
 
 Top
Zuldek
Отправлено: 15 Февраля, 2012 - 09:07:24
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




1. id_сборки, name_сборки
2. id_сборки id_комплектующей .Хранит связи таблицы сборок и таблицы комплектующих
3. ваша таблица комплектующей, с внешним ключом id_комплектующей.

У вас упомянут продукт и упомянута сборка, чем они отличаются - непонятно. Если сборка это несколько продуктов, собранных из комплектующих, то -

1. id_сборки, name_сборки
2. id_продукта, name_продукта, id_сборки
3. id_продукта, id_комплектующей Хранит связи таблицы продуктов и таблицы комплектующих
4. ваша таблица комплектующей, с внешним ключом id_комплектующей.

Если сборка может включать как продукт собранный из комплеткующих, так и сам и комплектующие, то изменится таблица связей-
3. id (продукта или сборки), id_комплектующей, type (продукт или сборка) Хранит связи таблицы продуктов,сборок и таблицы комплектующих.

К существующим полям можете добавлять цены - для продуктов и сборок. Но этого лучше не делать, а считать цены суммируя цены из входящих компонентов по таблице комплектующих. В противном случае при изменении сборки или изменения цены на одну комплектующую вам придется переопределять цены для всех продуктов и сборок, содержащие эту комплектующую.

(Отредактировано автором: 15 Февраля, 2012 - 10:19:27)

 
 Top
retrogirl
Отправлено: 15 Февраля, 2012 - 12:18:29
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




ну получается у меня структура такая же как в вашем первом варианте.
id_product_g - это id_готового продукта (сборки), id_product_k - id_комплектующих. Таблица "Сборка" хранит связи готового продукта и комплектующих.
Цену и правда лучше вычислять при выводе готовых продуктов.
А как вносить данные при добавлении готового продукта?
id_product_g - добавляется автоматически. Это нужно сначала добавить запись в таблицу "Готовый продукт", затем извлечь id_product_g и только потом добавлять записи в таблицу "Сборка"??
 
 Top
Zuldek
Отправлено: 15 Февраля, 2012 - 13:19:39
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




retrogirl пишет:
А как вносить данные при добавлении готового продукта?
id_product_g - добавляется автоматически. Это нужно сначала добавить запись в таблицу "Готовый продукт", затем извлечь id_product_g и только потом добавлять записи в таблицу "Сборка"??

Добавление продукта
1. Добавление продукта в таблицу продуктов
2. По id Добавленного продукта добавляем записи в таблицу связей продуктов и комплектующих столько сколько комплектующих в продукте.
Да, так и делается. в чем сложность?
 
 Top
retrogirl
Отправлено: 15 Февраля, 2012 - 14:59:24
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Zuldek
Пишу первый раз, хочу чтоб сразу все четко было)))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB