![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
mannyramirez |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.9.2010 Репутация: нет Всего: нет |
Имеется некая таблица MySQL в которой есть некие записи, пусть это
будет таблица "контакты". Имеется ряд операторов, которые работают с этой таблицей, им постоянно автоматически выбирается свободный контакт из таблицы "контакты". Необходимо реализовать скрипт работы операторов, чтобы им постоянно выдавался контакт, который свободен на данный момент. Причем не должна произойти ситуация захвата одного контакта двумя операторами за один сеанс работы. Решается ли эта задачка с использованием транзакций MySQL или нужно копать в другом направлении? |
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 3 Всего: 36 |
Можно транзакциями, можно блокировкой таблиц.
Либо не так чтобы очень правильно, но иногда проще - сделать у контактов поле `operator` где хранится оператор, который работает с контактом или NULL если он свободен. Потом как-то так:
|
|||
|
||||
xoslv |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 12.1.2007 Репутация: нет Всего: нет |
При использовании транзакций, во время её выполнения таблица будет заблокирована и не доступна для других пользователей, запросы будут вставать в очередь и ждать пока отработает транзакция. при 10 запросах в секунду это не критично. но для серьёзной базы, я бы искал другой способ... Ну и приведённый выше пример тоже не так плох. --------------------
Не всё то маздай, что синее! |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |