|
|
|
блокировки
|
|||
|---|---|---|---|
|
#18+
Привет всем. Хотел узнать, как в php блокировать записи? Смысл таков. Селект вернул запись, скрипт отработал и закрылся. Пользователь редактирует в браузере эту запись ну скажем долго. В это время другой пользователь решил потрогать ту запись, которую долго трогает первый юзер(на самом деле он правит параметры формы). Быстро все сделал и проапдейтил ее раньше первого. Какими способами, возможно, не дать редактировать запись второму пользователю, если первый пользователь ее пытается обновить, а может и не обновить, а просто посмотреть и не обновлять? БД - mssql, можно и для mysql совет дать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 18:47 |
|
||
|
блокировки
|
|||
|---|---|---|---|
|
#18+
Если б ты ADO.NET использовал, я бы подсказал... Насчет PHP не знаю, никогда не делал. То что ты хочешь - это pessimistic concurrency, почитай про это мануал MSSQL (Books Online который) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 19:21 |
|
||
|
блокировки
|
|||
|---|---|---|---|
|
#18+
РНР тут не причем. Читай про транзакции, уровни изоляции транзакций и т.п. Хотя если не ошибаюсь в mySql до 4 версии с транзакциями дело обстоит тяжело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2004, 16:34 |
|
||
|
блокировки
|
|||
|---|---|---|---|
|
#18+
ALex_hhaРНР тут не причем. Читай про транзакции, уровни изоляции транзакций и т.п. Хотя если не ошибаюсь в mySql до 4 версии с транзакциями дело обстоит тяжело. Мне кажется уровни изоляции и транзакции тут особенно и не причем. Я тут почитал про блокировки и мне понравился вариант с датой, то есть дату чекерить и если не совпадает с изначальной, то облом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 12:53 |
|
||
|
блокировки
|
|||
|---|---|---|---|
|
#18+
Принцип может бить таков (для реализации в лоб). Например для аукциона. Если ктото быстро купил вещь, то кортеж с инфой про вещь переносится в иное представление или некоторому атрибуту прежставления присвояется значение продано. Если иной юзер попробует купить ету вещь, то у него ето не получится, так как скрипт проверит доступна ли ета вещь в момент запроса. With best regards Alex Rootoff ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 14:02 |
|
||
|
блокировки
|
|||
|---|---|---|---|
|
#18+
Если говорить о колективной работе над одной записю, то можно воспользоватся временными штампами. В форме ставиш поле, что отвечает за время последней модификации. Если ктото отправил форму с устаревшим штампом(ктото уже подредактировал запись), то ему отправляется новая версия записи. Если штамп прийнятый от пользователя и с базы совпадают, можна апдейтить базу. With best regards Alex Rootoff ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 14:07 |
|
||
|
блокировки
|
|||
|---|---|---|---|
|
#18+
Alex RootoffЕсли говорить о колективной работе над одной записю, то можно воспользоватся временными штампами. В форме ставиш поле, что отвечает за время последней модификации. Если ктото отправил форму с устаревшим штампом(ктото уже подредактировал запись), то ему отправляется новая версия записи. Если штамп прийнятый от пользователя и с базы совпадают, можна апдейтить базу. With best regards Alex Rootoff Да примерно так. Аля как с датой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 15:06 |
|
||
|
блокировки
|
|||
|---|---|---|---|
|
#18+
дык, для этого и существует тип timestamp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 16:17 |
|
||
|
блокировки
|
|||
|---|---|---|---|
|
#18+
Пессиместическое блокирование в php не очень то пройдет. Во первых, сессия не закроется только если использовать pconnect, да и там нет гарантии, что сессия не закроется, и в след. раз не создастся новая. Можно как вариант считать md5 от всей записи, при обработке данных считывать строку опять и проверять md5 и если не совпадает, говорить юзеру что данные уже кто-то изменил пока он думал, и показать различия, предоставив ему думать, обновлять все таки запись или нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2004, 13:52 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=495&tid=1479143]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 317ms |

| 0 / 0 |
