Запросы в цикле

Запросы в цикле

База спроектирована нормально. Это - основная таблица. В связанных таблицах - дополнительные характеристики, которых на каждую услугу разное количество.

Требование: менеджер, обновляя услугу, должен на одном экране обновить инфу из всех таблиц и одной кнопкой ввести данные в базу.

Нет, у меня все работает. Но не слишком ли много запросов?
Запросы по каждой таблице обрабатываются каждая в своем цикле.

Если доп.талиц 5, а записей в среднем по 20 в каждой, то сколько будет инсертов и реплейсов?

Если это нормально, вопрос снят. Но может есть путь, который я не знаю, поскольку не ас в mysql.
 

Yurik

/dev/null
Запросов не слишком много, т.к. вложенных апдейтов СУБД ещё не научилиись делать, пока только DELETE. За 1 запрос можно присвоить только 1 набор значений для строк(и).
А то что доп. таблиц аж 5 кажется очень странным.
 
вложенных апдейтов СУБД ещё не научилиись делать
Это и хотелось знать - спасибо
А то что доп. таблиц аж 5 кажется очень странным.
А здесь, думаю, все нормально. Если интересно:

Предположим, есть турпоездка. Стоит она в разное время разные деньги и включает, кроме того, разные услуги (тоже в разное время).

Делаем на нее прайс лист с описанием. Описание - в основной таблице. Периоды и цены по этим периодам - в отдельных связанных с ней, поскольку количество периодов и типов цен - везде разное. Ну и еще некоторые характеристики (как то - что включено в стоимость, что не включено) - в отдельных таблицах.
А если все впихнуть в одну таблицу, слишком много будет повторений и избыточности информации.
 

.des.

Поставил пиво кому надо ;-)
вложенных апдейтов СУБД ещё не научилиись делать
что значит вложенные?

вообще очень часто можно обойтись одним update t1, t2 ... where t1.id=t2.id
а replace можно вообще делать одним запросом без цикла
REPLACE t1 [(...)] VALUES (...),(...),...
 
Ты обновишь только по одной записи. А мне надо одним кликом обновить по нескольку записей и в нескольких таблицах. Тут, как вижу, кроме как увеличением количества запросов (в циклах) не обойтись.

Юрик имел в виду, как я понимаю, это.
 

Апельсин

Оранжевое создание
> А мне надо одним кликом обновить по нескольку записей и в нескольких таблицах.

кто тебе мешает написать

UPDATE .. SET t1.column1=value1, ... , t1.columnN=valueN, ... tM.columnK=valueK;

ниже версии 4.0.4 работать не будет.

потом я так поняла тебе подойдет ON UPDATE CASCADE. Работает для таблиц InnoDB.
 
Сверху