Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование транзакций 
:(
    Опции темы
mannyramirez
Дата 16.9.2010, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 9.9.2010

Репутация: нет
Всего: нет



Имеется некая таблица MySQL в которой есть  некие  записи,  пусть  это
будет таблица "контакты". Имеется ряд операторов, которые  работают  с
этой таблицей, им постоянно автоматически выбирается свободный контакт
из таблицы "контакты".

Необходимо реализовать скрипт  работы  операторов,  чтобы  им
постоянно выдавался контакт, который свободен на данный момент. Причем
не должна произойти ситуация захвата одного контакта двумя операторами
за один сеанс работы.

Решается ли эта задачка с использованием транзакций MySQL или нужно копать в другом направлении?
PM MAIL   Вверх
vasac
Дата 17.9.2010, 11:42 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 3
Всего: 36



Можно транзакциями, можно блокировкой таблиц.

Либо не так чтобы очень правильно, но иногда проще - сделать у контактов поле `operator` где хранится оператор, который работает с контактом или NULL если он свободен.

Потом как-то так:
Код

UPDATE `contacts` SET `operator`=$operatorId WHERE `operator` IS NULL LIMIT 1; -- заблокировали контакт для оператора
SELECT * FROM `contacts` WHERE `operator`=$operatorId LIMIT 1; -- получили его

PM WWW   Вверх
xoslv
Дата 5.10.2010, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 12.1.2007

Репутация: нет
Всего: нет



Цитата(vasac @ 17.9.2010,  11:42)
Можно транзакциями, можно блокировкой таблиц.

При использовании транзакций, во время её выполнения таблица будет заблокирована и не доступна для других пользователей, запросы будут вставать в очередь и ждать пока отработает транзакция.
при 10 запросах в секунду это не критично. но для серьёзной базы, я бы искал другой способ...
Ну и приведённый выше пример тоже не так плох.
--------------------
Не всё то маздай, что синее!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.