|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.12.2019, 13:12 | #1 |
Пользователь
Регистрация: 02.11.2016
Сообщений: 26
|
Добавление нового заказа в высоконагруженную систему MySQL
Здравствуйте, необходима помощь с высоконагруженным запросом.
Необходимо составить SQL-запрос, который позволяет заносить данные заказа клиента с учетом специфики высоконагруженной системы. При составлении SQL-запроса необходимо учесть следующее: - для занесения данных в корзину заказа (shopping_cart) необходимы значения внешних ключей (fk_order и fk_product); - существует проблема получения значения id_order, в случае занесения данных заказа в таблицу Order. Она обусловлена тем, что за время от занесения данных заказа до наполнения корзины, в высоконагруженной системе уже могли быть оформлены другие заказы; - существует проблема добавления товаров (fk_product) в корзину заказа (shopping_cart). Перед добавлением товара в корзину, необходимо проверить, превышает ли количество (shop_quantity) заказанного товара в корзине его количество (quantity) на складе. Если нет, то количество товара на складе необходимо уменьшить на количество в корзине. Однако, за время наполнения корзины в высоконагруженной системе уже могли быть оформлены другие заказы на этот товар. То есть текущее значение количества товара в корзине и на складе (shop_quantity и quantity) может оказаться не актуальным (недействительным). Таблица "Order": Код:
Код:
Код:
1) сначала добавляется запись о новом заказе в таблицу "Order" (id_order, fk_client, date); 2) далее идёт заполнение корзины, таблица "Shopping_Cart" (fk_order, fk_product, shop_quantity), также перед добавлением товара мы проверяем условия: превышает ли количество (shop_quantity) заказанного товара в корзине его количество (quantity) на складе и если нет, то количество товара на складе необходимо уменьшить на количество в корзине. При этом не понятно как в одном запросе произвести вставку сразу в 2 таблицы (Order, Shopping_Cart) и как выполнить следующие условия: 1) При этом существует проблема получения значения id_order, в случае занесения данных заказа в таблицу Order. Она обусловлена тем, что за время от занесения данных заказа до наполнения корзины, в высоконагруженной системе уже могли быть оформлены другие заказы. 2) Однако, за время наполнения корзины в высоконагруженной системе уже могли быть оформлены другие заказы на этот товар. То есть текущее значение количества товара в корзине и на складе (shop_quantity и quantity) может оказаться не актуальным (недействительным). |
03.12.2019, 21:26 | #2 |
Заблокирован
Регистрация: 29.11.2019
Сообщений: 5
|
LAST_INSERT_ID, явное управление транзакциями. триггер на обновление Products
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добавление нового пользователя | Shatten | Общие вопросы .NET | 1 | 28.05.2015 17:29 |
Добавление нового элемента | Вероника99 | Помощь студентам | 7 | 24.12.2013 17:12 |
Добавление нового ресурса в exe шник | MVX | Помощь студентам | 19 | 06.08.2010 11:19 |
Добавление нового шрифта | Alex2009 | Общие вопросы Delphi | 1 | 24.04.2010 13:46 |
добавление нового типа данных | Sparky | Помощь студентам | 10 | 07.04.2010 11:10 |