|
|
|
Блокировки при редактировании в Web-приложении.
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток ... Хотелось бы узнать мнения профессионалов по поводу сабжа. Задача стандартная и быть может вполне уже "обсосанная донельзя", но все-таки: Web-приложение с CRUD-операциями, как реализовать решение конфликтов при одновременном редактировании записей? P.S. Может быть подскажете хорошие ссылочки на статьи по данному материалу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2007, 12:26:34 |
|
||
|
Блокировки при редактировании в Web-приложении.
|
|||
|---|---|---|---|
|
#18+
Оптимистическая блокировка. добавляешь к таблице столбец version и все update делаешь update table set ... version=@old_version+1 where id = @id and version =@old_version и смотришь сколько строк у тебя проупдейтилось если 0, то либо запись удалили либо версия поменялась. Ну и сообщение пользователю, данные за время работы были изменены и ваши изменения не прошли. Если использовать hibernate то там это уже сделано и заморачиваться даже не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2007, 12:46:11 |
|
||
|
Блокировки при редактировании в Web-приложении.
|
|||
|---|---|---|---|
|
#18+
vas0Оптимистическая блокировка. +1 vas0добавляешь к таблице столбец version Это один из вариантов реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2007, 13:24:10 |
|
||
|
Блокировки при редактировании в Web-приложении.
|
|||
|---|---|---|---|
|
#18+
vas0добавляешь к таблице столбец version вместо числовой версии можно использовать время изменения - timestamp с хорошей точностью. смысл тот же. плюс - удобно для отслеживания когда менялись данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2007, 13:54:32 |
|
||
|
Блокировки при редактировании в Web-приложении.
|
|||
|---|---|---|---|
|
#18+
TiG vas0добавляешь к таблице столбец version вместо числовой версии можно использовать время изменения - timestamp с хорошей точностью. смысл тот же. плюс - удобно для отслеживания когда менялись данные а мне timestamp не нравиться. Какое время использовать? Время сервера? Так его можно сбить, да и переходы на зимнее/летнее время, тоже головная боль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2007, 14:03:11 |
|
||
|
Блокировки при редактировании в Web-приложении.
|
|||
|---|---|---|---|
|
#18+
TiGвместо числовой версии можно использовать время изменения - timestamp с хорошей точностью. смысл тот же. плюс - удобно для отслеживания когда менялись данные боян. иногда его точности недостаточно. тема раскрыта в книжке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2007, 14:06:17 |
|
||
|
Блокировки при редактировании в Web-приложении.
|
|||
|---|---|---|---|
|
#18+
expp TiGвместо числовой версии можно использовать время изменения - timestamp с хорошей точностью. смысл тот же. плюс - удобно для отслеживания когда менялись данные боян. иногда его точности недостаточно. тема раскрыта в книжкеиногда да, но в большинстве случаев более чем достаточно еще один вариант (только начиная с 10g) - ORA_ROWSCN, подходит даже для случаев когда не хочется создавать в каждой таблице колонку с версией или временнОй меткой: Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 11:15:55 |
|
||
|
Блокировки при редактировании в Web-приложении.
|
|||
|---|---|---|---|
|
#18+
TiGеще один вариант (только начиная с 10g) - ORA_ROWSCN, подходит даже для случаев когда не хочется создавать в каждой таблице колонку с версией или временнОй меткой: Код: plaintext 1. 2. да, и не забываем, что в этом случае таблица должна быть создана с кляузой ROWDEPENDENCIES ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 11:30:33 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34887487&tid=2144226]: |
0ms |
get settings: |
18ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
18ms |
get forum data: |
4ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 371ms |
| total: | 552ms |

| 0 / 0 |
