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]   

> Описание: Подскажите, как рациональней связать записи?
b0lsh0i_b0ber
Отправлено: 22 Января, 2015 - 11:03:55
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Май 2011  


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




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

Рациональна ли такая схема или можно сделать проще? Спасибо всем откликнувшимся.
Прикреплено изображение (Нажмите для увеличения)
latte.png

(Отредактировано автором: 22 Января, 2015 - 11:05:32)

 
 Top
KingStar
Отправлено: 22 Января, 2015 - 11:23:56
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




лишние колонки

в таблице Кофе - 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


-----
То что программа работает, не означает что она написана правильно!
 
 Top
b0lsh0i_b0ber
Отправлено: 22 Января, 2015 - 11:45:25
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Май 2011  


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




KingStar
понял, спасибо что подсказал!)
 
 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