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
Форумы портала PHP.SU :: Версия для печати :: Архитектура связей ингредиентов для кофе
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Архитектура связей ингредиентов для кофе

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

1. b0lsh0i_b0ber - 22 Января, 2015 - 11:03:55 - перейти к сообщению
Привет. Есть такая задача. В одной таблице хранятся продукты, во второй ингредиенты. Каждый продукт состоит из ингредиентов. Допустим кофе латте состоит из молока (250 мл.) и кофе(30 мг.). Теперь необходимо связать это друг с другом, я создал отдельную таблицу, куда заносятся ингредиенты, с указанным объемом для напитка и связываю их через поле product_id. А чтобы при покупке кофе, объем ингредиентов вычитался из основной таблицы, я из связываю через ingridient_id.

Рациональна ли такая схема или можно сделать проще? Спасибо всем откликнувшимся.
2. KingStar - 22 Января, 2015 - 11:23:56 - перейти к сообщению
лишние колонки

в таблице Кофе - group_id
в таблице Латте - name

а так в принципе можно вынять
запрос будет вида

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2.  
  3.    `Кофе`.`name`,
  4.  
  5.    `Ингредиенты`.`name`,
  6.  
  7.    `Латте`.`count`,
  8.    `Латте`.`measure`
  9.  
  10. FROM
  11.      `Кофе`
  12.  
  13. JOIN
  14.      `Латте`
  15. ON
  16.      `Латте`.`product_id` = `Кофе`.`id`
  17.  
  18.  
  19. LEFT JOIN
  20.      `Ингредиенты`
  21. ON
  22.      `Ингредиенты`.`ingredient_id` = `Латте`.`id`
  23.  
  24. WHERE
  25.      `Кофе`.`id` = 1
3. b0lsh0i_b0ber - 22 Января, 2015 - 11:45:25 - перейти к сообщению
KingStar
понял, спасибо что подсказал!)

 

Powered by ExBB FM 1.0 RC1