|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
> Каждый документ имел бы какие-то теги Нет смысла реализовывать это в реляционных структурах. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2007, 19:32 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
guest_20040621> Каждый документ имел бы какие-то теги Нет смысла реализовывать это в реляционных структурах. Я и не собираюсь. Был бы заказ, реализовал бы БД активных документов. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2007, 19:36 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
guest_20040621> плохо представляю себе на практике Прайс-лист себе хорошо представляете? Более чем хорошо И представляю, и имел честь проектировать, разрабатывать и внедрять. guest_20040621 Представляете, как один сотрудник меняет розничные цены, второй - оптовые, третий - крупнооптовые? Рассматривал как 3 разных прайса. guest_20040621 Договор представляете? Можете представить, что юрист пишет раздел "ответственность сторон", а менеджер вносит изменения в "условия поставки"? Ага, а еще бывают приложения к договору и т.п. Здесь все проще и проблемы, которую можно было бы решить версионностью, нет. Как тут уже отметили, явный пример композитного документа. Можно разделить организационным путем, можно вообще на уровне интерфейса на разных рабочих местах сделать разные формы работы с документом. guest_20040621 Это пример простых документов, для которых коллективная работа имеет смысл. По поводу "все разделено организационно" - представьте, что изменения, скажем, в розничный прайс-лист вносятся не одним сотрудником, а несколькими. Смутно представляю необходимость именно одновременного внесения изменений в прайс. Если это мелкие изменения, тогда все отлично сериализуется. Типа один менеджер правит пару позиций, другой в этот момент тоже пытается, но натыкается на блокировку. Подождет пару минут - сможет редактировать. В крайнем случае скажет-позвонит-напишет коллеге, на котором блокировка, поинтересовавшись надолго ли guest_20040621 Причем, территориально рабочие места разнесены. Верно подмечено, сам хотел привести подобный пример. Если территориальное разнесение подразумевает, тем не менее, онлайновую работу с единой БД, тогда не вижу разницы. А вот в случае распределенных БД, да еще и с off-line репликацией - тогда да, есть такая проблема. В данном случае не получается элегантно сделать удобный механизм блокировок, как я описал ранее. Вариантов в таком случае мало: 1. Предложенный вами вариант с версионностью. Достаточно нетривиален в реализации и регламентах отработки конфликтов 2. Организационное решение. Ну, тут все понятно. Четко разделяем области ответственности, например по набору реквизитов документа или же по статусам. 3. Все таки механизм блокировок. Но оправданность такого механизма для офф-лайн случая тяжело придумать. Реализовать то можно, но если расписание обмена скажем минут 20, то получить подтверждение о возможности редактирования можно будет за 20-40 минут. Я для территориально разнесенных баз стараюсь обходиться организационным способом. Крайне редкие случаи, когда нет возможности разделить, до сих пор решались "телефонной блокировкой" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2007, 20:36 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
Александр ГoлдунВ крайнем случае скажет-позвонит-напишет коллеге, на котором блокировка, поинтересовавшись надолго ли Другой вариант. -- Ааааа!!! Система не работает, сделать ничего нельзя, во всём виноваты программисты!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2007, 20:56 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
mcureenab Александр ГoлдунВ крайнем случае скажет-позвонит-напишет коллеге, на котором блокировка, поинтересовавшись надолго ли Другой вариант. -- Ааааа!!! Система не работает, сделать ничего нельзя, во всём виноваты программисты!!! Это уже вопрос не технический, а кадровый. Надо уметь воспитывать пользователей :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2007, 21:01 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
Александр Гoлдун mcureenab Другой вариант. -- Ааааа!!! Система не работает, сделать ничего нельзя, во всём виноваты программисты!!! Это уже вопрос не технический, а кадровый. Надо уметь воспитывать пользователей :) Хотя, если пользователю выскакивает маловнятное сообщение об ошибке, тогда он прав - виноваты программисты. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2007, 21:07 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
> Ага, а еще бывают приложения к договору и т.п. Здесь все проще и проблемы, которую можно было > бы решить версионностью, нет. Еще как есть. Простой пример: тот же договор с приложениями. Часть приложений - стандартные файлы, лежат себе где-нибудь на ftp, часть приложений - лежат в системе контроля версий. Часть договора - в базе данных. Как Вы это все вместе собираетесь разгребать? Откуда версионность? - любой серьезный договор. Он согласовывается не раз, не два и не три. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2007, 21:31 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
Eugene7Есть БД, и 5-10 клиентов к нему подключенных. Как лучше сделать синхронизацию изменений одного и того же документа, если он редактируеться с двух разных клиентов в одно и то же время? А если разбить редактирование документа на блоки? И сохранять данные не по всему доку, а поблочно? И здесь легко организовать обновление блоков, измененных другими юзерами. А одновременное редактирование одной и той же записи блока считать диверсией, блокировать автоматом и ЖУРИТЬ юзеров? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2007, 21:41 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
Borodat Eugene7Есть БД, и 5-10 клиентов к нему подключенных. Как лучше сделать синхронизацию изменений одного и того же документа, если он редактируеться с двух разных клиентов в одно и то же время? А если разбить редактирование документа на блоки? И сохранять данные не по всему доку, а поблочно? И здесь легко организовать обновление блоков, измененных другими юзерами. А одновременное редактирование одной и той же записи блока считать диверсией, блокировать автоматом и ЖУРИТЬ юзеров? Если блоки логически независимы, то можно и так, но тогда задача просто уходит на уровень блоков. Если блоки логически связаны, например один блок содержит исходные данные для создания другого блока, то несогласованное редактирование таких блоков приведёт к нарушению целостности. Тогда полезно поддерживать версионность и связи версий блоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2007, 21:49 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
mcureenab Если блоки логически связаны, например один блок содержит исходные данные для создания другого блока, то это не редактирование а проводка. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2007, 22:25 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
mcureenab Что за проводка? На сколько Ампер? А ефто по потребношти. Если блок есть исходные данные для друго блока, мы запрещаем корректировку блока исходных данных (не фатально, а до специального разрешения от отвественного юзера) в тот момент, как появились подтвержденные ответственным юзером следствия. (явная рекурсия по юзерам ха ха ха) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2007, 23:06 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
guest_20040621> Ага, а еще бывают приложения к договору и т.п. Здесь все проще и проблемы, которую можно было > бы решить версионностью, нет. Еще как есть. Простой пример: тот же договор с приложениями. Часть приложений - стандартные файлы, лежат себе где-нибудь на ftp, часть приложений - лежат в системе контроля версий. Часть договора - в базе данных. Как Вы это все вместе собираетесь разгребать? Откуда версионность? - любой серьезный договор. Он согласовывается не раз, не два и не три. Вопрос целесообразности ведения этих версий БД. В системах документооборота возможно это актуально. Но чаще всего подобного рода работа ведется либо за пределами системы, а в базе уже фиксируется конечный вариант, либо все-таки все стадии проходят через БД, но опять таки, остается только конечный вариант. Разумеется, возможны частные случаи, когда в системах подобная работа отражается с максимальной детализацией, но мне не знакомы ни такие системы, ни примеры, где такое необходимо. Может быть потому что не приходилось очень плотно заниматься проблемами серьезных юридических отделов. Кроме договоров примеры есть? В других направлениях тоже можно увидеть отдаленное подобие версионности, но обычно выхолощенное до органиченного набора атрибутов документа. Например обычный заказ на поставку тоже ведь может проходить различные этапы согласования, корректировки и т.п. Но для целей работы и последующего анализа вполне может оказаться достаточно зафиксировать что хотели - заказанное кол-во и желаемые сроки, что подтвердил поставщик - согласованное кол-во и подтвержденная дата, ну а дальше уже что реально и когда получили. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 00:38 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
> Вопрос целесообразности ведения этих версий БД Если сложный документ связан с данными, то других вариантов, собственно, и нет. > мне не знакомы ни такие системы Мне тоже. > Кроме договоров примеры есть? Не думал об этом. В принципе, любые документы так можно готовить. Насколько это нужно и нужно ли вообще - сложно сказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 01:45 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
1.Блокировка для того, чтобы другой пользователь не мог изменить документ - не более чем иллюзия, придуманная для того, чтобы каким-то образом обосновать неспособность разрулить ситуацию по полномочиям. Если более одного пользователя имеют полномочия на редактирование документа, то блокируй-не блокируй... в итоге документ будет в том виде, который ему придаст пользователь, редактировавший его последним. В случае с блокировкой ему просто придется подождать, чтобы сделать задуманное. Т.е., кроме ненужных пухлых алгоритмов этот метод ничего не дает. 2. Разруливание по полномочиям исключает всякие коллизии. 3. Вполне достаточно действий по принципу "кто последний, тот и прав", а если и нужно поддерживать чистоту рядов то: 3.1 Пользователь может сохранять изменения только в документе, автором которого он же и является 3.2 Пользователь может сохранить изменения если документ ранее был сохранен пользователем с полномочиями ниже или равными (см. рис). Александр ГoлдунВопрос целесообразности ведения этих версий БД. В системах документооборота возможно это актуально. Но чаще всего подобного рода работа ведется либо за пределами системы, а в базе уже фиксируется конечный вариант, либо все-таки все стадии проходят через БД, но опять таки, остается только конечный вариант. Разумеется, возможны частные случаи, когда в системах подобная работа отражается с максимальной детализацией, но мне не знакомы ни такие системы, ни примеры, где такое необходимо. Может быть потому что не приходилось очень плотно заниматься проблемами серьезных юридических отделов. Система визирования документов. Это обычная ситуация для подобных систем. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 12:13 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
> Если более одного пользователя имеют полномочия на редактирование документа, > то блокируй-не блокируй... Валера, я давал ссылку на Subversion. > Система визирования документов. А что система визирования? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 12:21 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
iscrafm ... Полномичия тоже запросто может привести к коллизиям. Вопрос даже не в том, что какой вид имеет документ в конце (оставим), а в том, что исключить мартышкин труд. Секретарь -> Зам -> Шеф В итоге один из шефов мартышка. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 12:27 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
Сахават Юсифов iscrafm ... Полномичия тоже запросто может привести к коллизиям. Вопрос даже не в том, что какой вид имеет документ в конце (оставим), а в том, что исключить мартышкин труд. Секретарь -> Зам -> Шеф В итоге один из шефов мартышка. -> Зам -> Шеф паралельно. Другое дело если полномочия в разрезе частей документа. А еще лучше, когда документ сам управлет этими полномочиями. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 12:30 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
guest_20040621 Валера, я давал ссылку на Subversion. помню об этом :) Все таки CVS несколько другая тема по отношению к хоз. документам. Я имею ввиду именно их. guest_20040621 А что система визирования? в ней сохраняются все варианты документа, с комментариями и изменениями, заканчивая подписанным оригиналом. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 13:01 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
Сахават ЮсифовВ итоге один из шефов мартышка. почему Сахават? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 13:07 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
Сахават Юсифов А еще лучше, когда документ сам управлет этими полномочиями. у нас нет пока ООБД в нормальных реализациях для этого (сохранения умных сущностей в плоской РСУБД). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 13:07 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
iscrafm1.Блокировка для того, чтобы другой пользователь не мог изменить документ - не более чем иллюзия, придуманная для того, чтобы каким-то образом обосновать неспособность разрулить ситуацию по полномочиям. Да, иногда нет возможности полностью исключить возможность одновременной правки организационным путем или полномочиями. Ни разу не приходилось сталкиваться с документооборотом хотя бы в тысячи однотипных документов в день, когда большое число исполнителей одновременно обрабатывают общий пакет документов, внутри которого сделать жесткое разделение на все времена практически нереально? iscrafm Если более одного пользователя имеют полномочия на редактирование документа, то блокируй-не блокируй... в итоге документ будет в том виде, который ему придаст пользователь, редактировавший его последним. В случае с блокировкой ему просто придется подождать, чтобы сделать задуманное. Мы о чем рассуждаем? Об уменьшении вероятности ошибок из-за коллизий или о предотвращении умышленного вредительского саботажа, типа "а я все равно испорчу, что там коллега наваял"? Если второе, то комплекс мер для предотвращения подобного выглядит совершенно по другому. iscrafm Т.е., кроме ненужных пухлых алгоритмов этот метод ничего не дает. Пухлых? Реализация механизма в разы проще, чем описание на словах. А использование в документах - так вообще один вызов функции перед началом редактирования и один вызов по завершении. Где пухлость? iscrafm 2. Разруливание по полномочиям исключает всякие коллизии. как уже сказал, возможно далеко не всегда iscrafm 3. Вполне достаточно действий по принципу "кто последний, тот и прав", Недостаточно iscrafm а если и нужно поддерживать чистоту рядов то: 3.1 Пользователь может сохранять изменения только в документе, автором которого он же и является еще раз говорю, это приемлемо только для простых орг структур с ограниченным числом исполнителей. Типа один продажник, один закупщик, один кладовщик и т.п. Реальность же часто бывает неизмеримо сложнее. iscrafm 3.2 Пользователь может сохранить изменения если документ ранее был сохранен пользователем с полномочиями ниже или равными (см. рис). Неприемлено для документов, имеющих сложный жизненный путь. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 13:12 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
iscrafm Сахават ЮсифовВ итоге один из шефов мартышка. почему Сахават? Ну, я подумал, что у самого полномочий больше, чему у зама и соответственно работа зама впустую если они оба меняли одну и ту же часть документа.. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 13:13 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
Александр Гoлдун ок, не буду разубеждать или спорить. Я просто рассказал каким образом мы обходимся без блокировок и как избегаем коллизий. И полномочия разруливаем. Да и системами маленькими в общем-то не занимаемся. Структуры сложные, раскиданы территориально... По-моему Вы немного преувеличиваете сам факт наличия проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 13:26 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
Александр Гoлдун Неприемлено для документов, имеющих сложный жизненный путь. был бы признателен за расшифровку.. что Вы понимаете под "сложным жизненным путем" документа ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 13:30 |
|
Одновременное изменение документа
|
|||
---|---|---|---|
#18+
> несколько другая тема Да. Но согласитесь, насколько удобно было бы всегда все изменения регулировать единым образом. Checkout - и абсолютно не заботит, где, как и почему хранятся документы; полная уверенность, что никакие изменения никогда потеряны не будут. Красота. ;) Вместе с тем, административные полномочия - это и правильно, и хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2007, 14:06 |
|
|
start [/forum/topic.php?fid=33&msg=34542134&tid=1549078]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
131ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 499ms |
0 / 0 |