|
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 34
|
|
Многое ко многим: товары и заказы02.11.2015, 04:13. Показов 6979. Ответов 9
Метки нет (Все метки)
У меня есть таблица с товарами, есть таблица с заказами. Не пойму как их связать по типу многое ко многим.
В один заказ может входить несколько товаров, при этом один товар может соответствовать нескольким заказам. Какие столбцы должны быть в каждой таблице? В первой таблице у меня: Id товара, название, описание, стоимость, остаток на складе. В третьей должно быть: Id заказа, дата заказа (по идее и дата не нужна, но чтобы таблица в 1 столбец не был) Во второй промежуточной должно быть: Id товара, Id заказа, связи по Id. При оформлении заказа, при нажатии на кнопку создается строка в третьей таблице, Id автоинкремент. Дальше во вторую таблицу записываются товары с различными Id товара, но одинаковым Id заказа. А если добавить в заказ несколько одинаковых товаров, то что делать? И как мне вообще генерировать Id заказа, если его вытащить невозможно практически? Нажал на кнопку, создалась строка, допустим 4 | 02.11.2015 11:00. Как мне теперь вытащить Id товара = 4, если он независимо генерируется при добавлении даты в таблицу? Поиск последней строки в таблице такое себе дело. Единственная мысль - генерировать на основе session_id() Вытащить его нужно чтобы добавить информацию из заказа во вторую таблицу: Id товара | Id заказа | |
0
|
|
| 02.11.2015, 04:13 | |
|
Ответы с готовыми решениями:
9
Django admin связи многое ко многим, как реализовать? Спрос на товары: заказы автомобилей |
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
|
|||||||||||||||||||
| 02.11.2015, 09:04 | |||||||||||||||||||
|
LokiHellbringer, я бы не стал вообще связывать таблицы заказов и товаров. В этом есть несколько важных минусов:
1. Если вы поменяете название/цену товара, эти изменения коснутся уже выполненных заказов, и будет хаос. 2. Если вы удалите товар... сами понимаете, что будет. На мой взгляд, лучше при создании заказа копировать информацию о товарах в новую таблицу, примерно так: products
После добавления новой записи вызываете функцию mysql_insert_id, она возвращает id последней добавленной записи.
1
|
|||||||||||||||||||
|
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
|
||||||||||||
| 02.11.2015, 09:46 | ||||||||||||
|
таблица с товаром
0
|
||||||||||||
|
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 34
|
|||||||||
| 02.11.2015, 17:10 [ТС] | |||||||||
|
Видел пример, в котором массив заказанных товаров забивается в переменную и отправляется в значение ячейки:
0
|
|||||||||
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
|
|||
| 02.11.2015, 17:57 | |||
Сообщение было отмечено LokiHellbringer как решение
Решение
1
|
|||
|
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 34
|
||||||||||||||||||||||||||
| 02.11.2015, 18:56 [ТС] | ||||||||||||||||||||||||||
|
2 таблицы
products:
orders:
0
|
||||||||||||||||||||||||||
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
|
|||
| 02.11.2015, 19:04 | |||
Сообщение было отмечено LokiHellbringer как решение
Решение
1
|
|||
|
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 34
|
|
| 02.11.2015, 19:18 [ТС] | |
|
Понял, спасибо, так и сделаем.
0
|
|
|
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
|
|||||||
| 02.11.2015, 22:14 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 34
|
||
| 06.11.2015, 00:59 [ТС] | ||
|
У меня только мысль выводить в виде массива, и оперировать уже с ним.
0
|
||
| 06.11.2015, 00:59 | |
|
Помогаю со студенческими работами здесь
10
Вывести заказы созданные пользователем, который не разу не выполнял заказы Заказы появляются с опозданием, невидимые заказы Нужно сделать в запросе условие отбора по ФИО заказчика, при котором бы отображались все заказы по этому заказчику, или заказы всех заказчиков Entity Framework 6. Code First. Связь один-ко-многим и многие-ко-многим одновременно Определить тип связи между таблицами. Связь много-ко-многим или один-ко-многим? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|