Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2014, 12:05   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А select for update в MySQL есть?
См. ссылку что я дал.
Цитата:
сделайте каждому юзеру отдельную таблицу и пусть радуется.
Даже если юзеров будет +100500? АБД спасибо не скажет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.05.2014, 12:16   #12
buriat
Форумчанин
 
Регистрация: 28.06.2010
Сообщений: 189
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Все равно устаревание данных получится. В этом случае поставить в таймере запрос придется. Да и это тоже не панацея. Косяков там можно наделать неслабо.
Все равно я думаю что проще будет пересмотреть стратегию.
Наверное не так поняли. Если во время обработки субмита выясняется что данные кто-то до юзера обновил, то ему вылетает таже форма, только со свежими данными из бд. Далее он опять пересмотрел/подредактировал поля и опять субмит.
Если ети данные может редактировать 100500 юзеров одновременно, то это бред конечно.
buriat вне форума Ответить с цитированием
Старый 14.05.2014, 12:42   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Если во время обработки субмита
Так а если я не желаю субмитить? я Я запросил таблицу сижу ее рассматриваю. Час, два... год. Все это время никакого субмита, а данные должны быть залочены.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.05.2014, 12:59   #14
buriat
Форумчанин
 
Регистрация: 28.06.2010
Сообщений: 189
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Так а если я не желаю субмитить? я Я запросил таблицу сижу ее рассматриваю. Час, два... год. Все это время никакого субмита, а данные должны быть залочены.
Аа, я думал тут проблема с записью в таблицу )
buriat вне форума Ответить с цитированием
Старый 14.05.2014, 13:40   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не. Тут тривиальная задача. Тут хорошенечко нужно подумать, ибо решение далеко не дастся просто так
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.05.2014, 02:13   #16
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

select for update не работает с учетом поставленной задачи.
пользователей не будет 100500. Но одновременные обращения все же возможны. Вариант создавать для каждого пользователя отдельную таблицу тоже сомнительный хранить кучу таблиц одинаково содержания целесообразно ли это? в моей задаче одновременно запросить одну и туже запись смогут максимум 4 пользователя это 3 админа и владелец созданных данных это конечно уменьшает шанс на какой либо затуп но все же если будет ситуация с 100500 пользователей?
Lokos вне форума Ответить с цитированием
Старый 15.05.2014, 08:18   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если будет ситуация с 100500 пользователей?
Честно, вот я бы не заморачивался. Просто в РЭ указал для юзеров, что мол данные полученные могут устаревать, так чо время от времени обновляйтесь.
А что вообще за данные такие что мегасрочно блокировать просятся?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.05.2014, 08:45   #18
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а что случиться то с 100500 пользователями? ну запросили, и что?
eval вне форума Ответить с цитированием
Старый 15.05.2014, 08:59   #19
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Да особой мегосрочности нет это так на будующее.
Вообщем решил остановиться на таком варианте
выполняем сначала блокирующий запрос примерно такого вда
Код:
'UPDATE tb1 SET `FlagLock`=1,`FlagNameLock`='.$Name.' WHERE (SELECT * FROM tb1 WHERE `какое то условие` and `FlagLock`=0)'
после этого выполняем обычный select с параметром WHERE FlagNameLock и получается что пользователь может редактировать заблокированные записи а остальные пользователи видеть их не будут
Lokos вне форума Ответить с цитированием
Старый 15.05.2014, 09:12   #20
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Lokos, а кто будет снимать эти FalgLock FlagNameLock, если ползователь отвалится (ну, электричество ему отключат, например. и он с горя в отпуск уедет)?
Всё, баста?! дальше будем ждать его возвращения?


p.s. я ничего не имею против вашей задумки, схема вполне себе рабочая (имхо), просто хочу указать на слабые места, которые требуют дополнительных обработок...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
INSERT в MySQl базу типа InnoDB. Кодировка. webber9989 PHP 0 09.01.2014 14:45
Конфигурация MySQL InnoDB stepka SQL, базы данных 0 05.06.2011 15:00
Блокировка таблицы Liones БД в Delphi 5 16.07.2010 11:45
блокировка таблицы при одновременном доступе dalien БД в Delphi 3 12.08.2009 16:44