|
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 34
|
|
Многое ко многим: товары и заказы02.11.2015, 04:13. Показов 6976. Ответов 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. Связь один-ко-многим и многие-ко-многим одновременно Определить тип связи между таблицами. Связь много-ко-многим или один-ко-многим? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|