|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Коллеги, помогите идеей! Имеется некая таблица на MSSQLSERVER. От нескольких десятков до нескольких сотен, возможно, нескольких тысяч записей. Несколько (в пределе несколько десятков) пользователей, одновременно редактируют эту таблицу. Редактируют по одной записи. Таблица в пользовательском приложении представлена в виде сетки. Наверное datagridview, но торг - уместен. Необходимо реализовать следующее поведение: 1. Все пользователи, которые редактируют данные, должны получать информацию, что указанная запись уже кем то редактируется (ну, карандашик что-ли в фиксированном заголовочном столбце). 2. Однако это не должно блокировать доступ к этой записи других пользователей. 3. Отредактированные записи должны синхронно обновляться у всех пользователей, редактирующих таблицу. 4. В случае, если в этот момент какой то другой пользователь редактирует эту запись, он должен получить сообщение, что запись была изменена. Подскажите, как это реализовать? Концептуально что-ли... Хранить информацию о том, что пользователь собирается редактировать запись в какой то таблице? А как получать информацию о том, что пользователь успешно обновил запись? А как собирать мусор, если пользователь захватил запись, но потом ошибочно завершился, не успев вычеркнуть информацию о блокировке? Помогите не изобретать велосипед! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2014, 20:03 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
смотрите в сторону Windows Communication Foundation ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2014, 20:22 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Указанная задача без велосипедов не решается. Пункт 3 адекватно делается при схождении парада планет. В простейшем случае в таблицу нужно добавить поля: ItemEdit bit --запись редактируется в данный момент StartEdit datetime --когда запись начали редактировать LastItemUpdate datetime --когда запись была последний раз обновлена ItemInsert datetime --когда запись добавили На основе данных в этих полях можно реализовать описанное выше. Удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 08:22 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Если уже "жесткую блокировку" записи на конкретного юзера нужно сделать, то еще и поле с ID юзера нужно добавить, который редактирует запись. Ваще реализация подобных вещей это ужасный гемор, здесь логики может быть больше в 10 раз чем логики в самом приложении, проще надо быть ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 08:27 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Пока делать нефиг, дополню... В датагриде есть события на начало и конец редактирования записи. Можно по этим событиям устанавливать на сервере ItemEdit в true/false, но если полей много, то дохрена запросов на сервак будет лететь, лучше тогда сделать отдельную формочку для редактирования записи - details, и при ее открытии/закрытии устанавливать ItemEdit в true/false, так система будет работать "жеще". ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 11:19 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIлучше тогда сделать отдельную формочку для редактирования записи+0х18894 Я блокировки редактирования записей вообще складываю в отдельную таблицу с привязкой к пользователю и экземпляру клиентского приложения. Тогда во-первых не нужно привязываться к записи (одна блокировка может запретить несколько действий, а не одно), во-вторых при аварийной потере клиента, его блокировки спокойно очищаются сервером. Формочка по умолчанию открывается в режиме ReadOnly, блокировка наступает, когда пользователь явно нажал "Редактировать" (впрочем, это опционально) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 11:38 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Shocker.ProЯ блокировки редактирования записей вообще складываю в отдельную таблицу с привязкой к пользователю и экземпляру клиентского приложения. Тогда во-первых не нужно привязываться к записи (одна блокировка может запретить несколько действий, а не одно), во-вторых при аварийной потере клиента, его блокировки спокойно очищаются сервером. Можно конечно и так. Здесь задачка с виду и простая, но вариантов решения можно придумать уйму, а геморнее всего сообщать клиетам что такие-то записи редактируются и динамически все обновлять. Простейший вариант - дергать сервак по таймеру, но если клиентов сотня и дергать каждые 3 секунды это уже попа. Слать сообщение от сервака клиентам, тоже вариант геморный, далеко не всегда так сделать получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 12:06 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Я делал подобное с помощью SignalR. Приложение WinForms, подключенное к SignalR серверу. Грид для отображения (read-only), отдельная форма для редактирования вызывается по double-click на записи или по нажатию кнопки. Если кто-то блокирует запись на редактирование, SignalR рассылает всем остальным подключенным пользователям сообщение о блокировке и для них эта запись становится недоступной для редактирования в пользовательском интерфейсе. Если кто-то заблокировал запись и потерял связь с сервером, это ловится через событые на сервере по тайм-ауту и все блокировки этого пользователя снимаются. также реализовано и обновление. после того, как пользователь закончил редактирование, и запись успешно обновлена, то всем рассылается обновленный объект, старая запись замещается новой и разблокируется для последующего редактирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 13:33 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
забыл добавить, что для манипулирования записями в таблице на сервере SignalR дергает соответствующие хранимые процедуры с параметрами. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 13:36 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
все это можно, если с Бд работают только твои клиенты а что быдет если то то минуя ваш доморощенный механизм будет работать с БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 15:26 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosвсе это можно, если с Бд работают только твои клиенты а что быдет если то то минуя ваш доморощенный механизм будет работать с БД? В моем случае, общение программа <-> SQL Server идет через веб-сервер и SignalR, и напрямую к сиквелу у пользователей доступа нет. Логику сделал на хранимках, и права дал только на них, т.е. в любом случае пользователи не имеют прямого доступа к таблицам и ничего там не смогут поменять. Еще, в приложении сделал кнопочку Refresh, чтобы уж в крайнем случае можно было перечитать самые свежие данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 18:02 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Диклевич Александр, дык это у ВТОЕЙ проги нет прав у пользователей, у других прог запросто может и быть ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 18:45 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
А у кого-то есть доступ к шнуру питания сервера и что дальше? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 18:48 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
А что мешает реализовать простой механизм "Извлечь запись", наподобие как в SharePoint сделано? Юзер жмет кнопку и если запись свободна, то извлекается и прибивается к пользователю. Теперь её никто не сможет редактировать (кроме администраторов). Задача настолько элементарна, что тут даже усложнять нечего. Два поля, дата/время и пользователь. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 19:09 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
МСУДва поля, дата/время и пользователь. Дата/время чего? Как известить потом юзеров что данная запись изменена? И как узнать что клиент не отвалился при редактировании? Даты должно быть по крайней мере две, когда началось редактирование и когда сохранили изменения, а еще всем юзерам нужно узнавать о добавлении новых записей, соответственно еще и дата всавки нужна... не так все просто... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 19:19 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIДата/время чего? Дата и время извлечения. Другими словами, чтобы знать, когда юзер застолбил запись под себя. EDUARD SAPOTSKIКак известить потом юзеров что данная запись изменена? Это уже другая задача. Любишь же ты мешать в кучу мух с котлетами. Когда юзер опубликует запись, тогда пользователям (которые подписаны на уведомления) придет сообщение по почте. EDUARD SAPOTSKIИ как узнать что клиент не отвалился при редактировании? Никак. Этого и не надо знать. Когда будет публикация, тогда будет запись доступна. Не нужно ничего усложнять какими-то кривыми процессами. EDUARD SAPOTSKIДаты должно быть по крайней мере две, когда началось редактирование и когда сохранили изменения, а еще всем юзерам нужно узнавать о добавлении новых записей, соответственно еще и дата всавки нужна... не так все просто... Глупости. Не нужны ни две, ни три даты. Это никому не нужная информация. Нужно только знать, когда и кто застолбил запись. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 19:24 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Shocker.ProА у кого-то есть доступ к шнуру питания сервера и что дальше? значит нефиг заниматься фигней либо ты как положено что то блокируешь ото всех, либо оптимизм ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 19:46 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
МСУНужно только знать, когда и кто застолбил запись. это тоже глупость, все это лишнее (ты все равно не сможешь повлиять на ход событий - или прав нет (инфа о юзерах закрыть от тебя), или тот более привлегирован чем ты, и т.д.) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 19:49 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
стратегий явных 3 пессимизм оптимизм смес (для разных юзеров, ролей, объектов их отношений -разные стратегии) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 19:53 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosМСУНужно только знать, когда и кто застолбил запись. это тоже глупость, все это лишнее (ты все равно не сможешь повлиять на ход событий - или прав нет (инфа о юзерах закрыть от тебя), или тот более привлегирован чем ты, и т.д.) Какой ход событий, ты о чем? Пользователь Вася Пупкин застолбил запись, т.к. у него есть на это права. Остальные сосут болт до тех пор, пока запись не освободится. В чем проблема? Да и с какого перепуга информация о Васи Пупкине закрыта от меня? Мне вообще нравится ваша с Эдиком затея - вечно пытаетесь накрутить каких-то левых требований, пытаетесь додумать новых задач и просто фантазий. Не нужно никакой лапши. Кейс простой - управление одновременным редактированием данных несколькими пользователями. Точка. Вот тут есть немного аналитики. http://codearticles.ru/articles/1842 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 20:42 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
МСУЭто уже другая задача. Любишь же ты мешать в кучу мух с котлетами. Когда юзер опубликует запись, тогда пользователям (которые подписаны на уведомления) придет сообщение по почте. Куда плять? По какой почте? Сидит отдел и редактирует записи. Еще и в аутлук лазить узнавать кто что отредактировал? Это комплексная задача, и решать нужно все сразу и скопом! МСУНикак. Этого и не надо знать. Когда будет публикация, тогда будет запись доступна. Не нужно ничего усложнять какими-то кривыми процессами. Клиен хочет динамическое обновление! Ему ты не докажешь что сам дурак. Надо значит надо! МСУГлупости. Не нужны ни две, ни три даты. Это никому не нужная информация. Нужно только знать, когда и кто застолбил запись. Да. В большинстве случаев это прокатывает, но бывают и привередливые клиенты. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 21:25 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIКуда плять? По какой почте? Сидит отдел и редактирует записи. Еще и в аутлук лазить узнавать кто что отредактировал? Это комплексная задача, и решать нужно все сразу и скопом! Опять фантазируешь. Какой-то отдел выдумал. Который сидит и тужится над одной записью. Ты там укурен, чтоле? Где ты видел такие отделы, которые сидят и потеют над записью? А уведомление может быть где угодно, почта, пуш сообщение, голуби. Это не относится к задаче управление одновременным редактированием данных несколькими пользователями. EDUARD SAPOTSKIКлиен хочет динамическое обновление! Ему ты не докажешь что сам дурак. Надо значит надо! Какое еще динамическое обновление? Опять фантазируешь? EDUARD SAPOTSKIМСУГлупости. Не нужны ни две, ни три даты. Это никому не нужная информация. Нужно только знать, когда и кто застолбил запись. Да. В большинстве случаев это прокатывает, но бывают и привередливые клиенты. Да класть на привиредливость. Есть кейс в виде управления одновременным редактированием данных несколькими пользователями. Есть решение - кнопка "Извлечь". Алгоритм работы я объяснил, он проще пареной репы. Всё остальное - это глупое выдумывание каких-то идиотских мультиков, типа динамического обновления, отдела с записью и прочего бреда. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 22:33 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
МСУViPRosпропущено... это тоже глупость, все это лишнее (ты все равно не сможешь повлиять на ход событий - или прав нет (инфа о юзерах закрыть от тебя), или тот более привлегирован чем ты, и т.д.) Какой ход событий, ты о чем? Пользователь Вася Пупкин застолбил запись, т.к. у него есть на это права. Остальные сосут болт до тех пор, пока запись не освободится. В чем проблема? Да и с какого перепуга информация о Васи Пупкине закрыта от меня? Мне вообще нравится ваша с Эдиком затея - вечно пытаетесь накрутить каких-то левых требований, пытаетесь додумать новых задач и просто фантазий. Не нужно никакой лапши. Кейс простой - управление одновременным редактированием данных несколькими пользователями. Точка. Вот тут есть немного аналитики. http://codearticles.ru/articles/1842 просто в очень многих компаниях не обязательно, что бы кто то знал - чем счас занимается вася пупкин и к чему это знание - будешь звонить директору типа выйди козел хочу тут поредактировать? :) проезжали все это с остановками за 35 лет ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:04 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
МСУ, алгоритм извлечь (заблокировать реально) простой, когда система продумано, атак одни дедлоки и смерть "систем" ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:05 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosпросто в очень многих компаниях не обязательно, что бы кто то знал - чем счас занимается вася пупкин и к чему это знание - будешь звонить директору типа выйди козел хочу тут поредактировать? :) проезжали все это с остановками за 35 лет Да, звони, пиши, стучись в двери. Или жалуйся администрации приложения. А ты как хотел, чтобы само все у работало? Чудес не бывает. Учи пользователей ответственно работать. Это уже административная задача для руководства. Взял запись, поработал и отпусти. И не нужно тут выдумывать левые кейсы, обобщать и накручивать. Для нештатных ситуаций есть админ, всё остальное сами юзеры разрулят. Причём это не технический админ может быть, а руководитель подразделения, наделенный правом возвращать документы других пользователей. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:11 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosМСУ, алгоритм извлечь (заблокировать реально) простой, когда система продумано, атак одни дедлоки и смерть "систем" Этой идее сто лет в обед. Даже в шарепоинте так сделано, очень удобно и никто не жалуется. Все проблемы возникают обычно у тех, кто любит на пустом месте обобщать и накручивать. А задача то копеечная. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:14 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Механизм извлечения - это не блокировка, а признак в таблице. Ещё не хватало тут дедлоков, акстись ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:16 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
МСУViPRosМСУ, алгоритм извлечь (заблокировать реально) простой, когда система продумано, атак одни дедлоки и смерть "систем" Этой идее сто лет в обед. Даже в шарепоинте так сделано, очень удобно и никто не жалуется. Все проблемы возникают обычно у тех, кто любит на пустом месте обобщать и накручивать. А задача то копеечная. Ты смотришь с позиции мелкософта. А они смотрят с позиции статистики! Действительно, подход реализованный в шарике статистически съедобен. Но от того что он съедобен у меня денюх в кармане больше не становится! Клиенту нужно дать что он хочет! А хочет он динамику, вот и приходится крутиться и изобретать подобные алгоритмы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:19 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI, это всё левотня на постном масле, тем более автоматически обновляемый гуй всегда плохо. Предложи юзеру самому принять решение, обновить или не надо. Подкинь плавающий алерт, пришли голубя. Тем более это всё легко реализуется, т.к. программа знает о том, что сейчас запись отпустили. Пришло время уведомить и при необходимости обновить гуя. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:23 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
МСУ, ну яи тебе говорю, одного того факта - что объект заблокирован или больше не существует - достаточно для юзера,а для адимнов есть другой инструментарий ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:30 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
МСУМеханизм извлечения - это не блокировка, а признак в таблице. Ещё не хватало тут дедлоков, акстись ну такой бестолковой фигней лучьше ваще не заниматься - это самообман ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:32 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRos, пессимизм особо важен при внедрении и особенно там где нет культуры автоматизации (не в курсе, что одновременно с тобой еще некоторые могут читать писать и т.д. туда ж) по мере повышения уровня организации работ потихоньку надо отпустить пессимизм, частично переведя в смешаный режим, а в дальнейшем в полный пессимизм при это хорошо для привилегированных козлов оставить пессимизм всегда, они е могут и не хотят ждать и работать впустую ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:39 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRos, "в дальнейшем полный оптимизм" конечно ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:39 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
МСУэто всё левотня на постном масле, тем более автоматически обновляемый гуй всегда плохо. Предложи юзеру самому принять решение, обновить или не надо. Подкинь плавающий алерт, пришли голубя. Тем более это всё легко реализуется, т.к. программа знает о том, что сейчас запись отпустили. Пришло время уведомить и при необходимости обновить гуя. Если бы я не решал такие задачи, то сейчас сидел бы говноэникеем на говносапорте 1С Ели главбух на пару с директором решили, что данный стол должен продаватьсь не за 100 багсов а за 120, то через минуту продажники должны в телефонные трубки трещать, какие у них охрененные столы за 120 багсов! А не ждать очередного "голуюя"! Селяви. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:41 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2014, 23:49 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
SerP1983, ты можешь это куда нить еще повесить ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 00:07 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosМСУ, ну яи тебе говорю, одного того факта - что объект заблокирован или больше не существует - достаточно для юзера,а для адимнов есть другой инструментарий Ну тебе эта информация не нужна, а другим нужна. Это вообще не важно и никак не влияет на логику, смысл об этом говорить. ViPRosМСУМеханизм извлечения - это не блокировка, а признак в таблице. Ещё не хватало тут дедлоков, акстись ну такой бестолковой фигней лучьше ваще не заниматься - это самообман Ты о чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 00:22 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
МСУ, о том, что если кто то рекомендует или реализовывает только оптимистический сценарий доступа к объектам, то он просто не умеет реализовывать пессимистический это приговор! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 00:27 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosДиклевич Александр, дык это у ВТОЕЙ проги нет прав у пользователей, у других прог запросто может и быть это моя забота знать кто к чему имеет доступ в моей базе. И потом, доступ есть у пользователей, но не у программ. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 01:35 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosМСУ, о том, что если кто то рекомендует или реализовывает только оптимистический сценарий доступа к объектам, то он просто не умеет реализовывать пессимистический это приговор! Мне не важно, кто и как умеет это делать. Был описан кейс в сабже, я написал, как это делается за 5 минут - добавить пару полей и кнопку извлечь. Всё. Зачем что-то ещё нужно? Раздувать щеки способами решения, обобщать что-то на пустом месте, выдумывать новые фантастические сценарии - это не моё. Есть задача - есть решение. Ничего лишнего, всё по существу. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 09:23 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosSerP1983, ты можешь это куда нить еще повеситьЯ тебя не понимать, что и куда надо вешать? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 11:07 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
МСУБыл описан кейс в сабже, я написал, как это делается за 5 минут - добавить пару полей и кнопку извлечь. Всё. Зачем что-то ещё нужно? Раздувать щеки способами решения, обобщать что-то на пустом месте, выдумывать новые фантастические сценарии - это не моё. Есть задача - есть решение. Ничего лишнего, всё по существу. С ТЗ изволил ознакомиться? uaggster1. Все пользователи, которые редактируют данные, должны получать информацию, что указанная запись уже кем то редактируется (ну, карандашик что-ли в фиксированном заголовочном столбце). Можно реализовать по твоей модели? Можно! uaggster2. Однако это не должно блокировать доступ к этой записи других пользователей. Здесь ХЗ что ТС имел ввиду, если ридонли то можно, если редактирование толпой то предложенная модель идет лесом. uaggster3. Отредактированные записи должны синхронно обновляться у всех пользователей, редактирующих таблицу. Снова твоя модель идет лесом. uaggster4. В случае, если в этот момент какой то другой пользователь редактирует эту запись, он должен получить сообщение, что запись была изменена. И здесь прокол! Извини, но решение не удовлетворительное. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 12:00 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Диклевич АлександрViPRosДиклевич Александр, дык это у ВТОЕЙ проги нет прав у пользователей, у других прог запросто может и быть это моя забота знать кто к чему имеет доступ в моей базе. И потом, доступ есть у пользователей, но не у программ. Твоя БД у тебя дома ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 12:18 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
SerP1983ViPRosSerP1983, ты можешь это куда нить еще повеситьЯ тебя не понимать, что и куда надо вешать? то что ты называешь теорией таковым не является, а пример для детских поделок, теперь вот подумай куда такиее ссылки вещать ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 12:19 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosSerP1983пропущено... Я тебя не понимать, что и куда надо вешать? то что ты называешь теорией таковым не является, а пример для детских поделок, теперь вот подумай куда такиее ссылки вещать Ха-Ха. Кто бы говорил. Человек, который осилил только контролы devexpress и работу с DataTable, вдруг начал думать, что он круче Фаулера? Саха, навешай тогда свои ссылки с випросом, покажи как решаются вопросы блокировки и разрешения коллизий на новом гениальном уровне. А пока твои высказывания пук в лужу. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 12:35 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
SerP1983Ха-Ха. Кто бы говорил. Человек, который осилил только контролы devexpress и работу с DataTable, вдруг начал думать, что он круче Фаулера? +1, тоже заметил некое величие гуру-аналитика Сахавата :) Он смотрит на нас, как на гавно SerP1983А пока твои высказывания пук в лужу. Да половина этих высказываний - наркотический бред, прости Господи... Ну да ладно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 12:44 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
МСУ, да живите в черно белом мире своем с бест практикс от фулера, я то что вот у сап тож везде бест, но каждый раз почему то приходится переписывать все для каждого предприятия чуть не с нуля русская душа всегда благосклонно была к западенству, все копировала имея "свой путь" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 13:18 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Сахават, ты пойми одно, сто раз уже писал - мы не пишем сапы, аксапты и прочие конструкторы. Накойхер ты тут навязываешь свои унылые хранимые процедуры с динамическими датасетами? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 13:37 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosМСУ, да живите в черно белом мире своем с бест практикс от фулера, я то что вот у сап тож везде бест, но каждый раз почему то приходится переписывать все для каждого предприятия чуть не с нуля русская душа всегда благосклонно была к западенству, все копировала имея "свой путь" :) Бла-Бла-Бла. Опять пошел пердеж в лужу. Саха, еще раз, покажи как постсоветский не западнический випрос "по своему пути" решает вопросы блокировок и коллизий? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 13:39 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosДиклевич Александрпропущено... это моя забота знать кто к чему имеет доступ в моей базе. И потом, доступ есть у пользователей, но не у программ. Твоя БД у тебя дома Если у вас так, это не значит что у всех так. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 14:20 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Я бы тоже обсудил требования - возможно получиться обойтись более простым решением - блокировка записи. Иначе концептуально это выглядит так: 1. Есть клиент и сервер 2. Клиент имеет грид, с режимом просмотра (когда ячейку выделили) и режимом редактирования (когда на ячейку ткнули два раза и в ней появился курсор) 3. Когда ячейка вошла в режим редактирования - на сервер отправляется информация - ид записи, номер ячейки, флаг блокировки, кто блокирует 4. Сервер рассылает эту информацию другим клиентам 5. Каждый из клиентов находит у себя эту запись у себя и блокирует ячейку (обводит красным, блокирует режим редактирования и т.п.) Есть два режима уведомления: 1. Когда клиент периодически запрашивает изменения с сервера 2. Когда сервер рассылает изменения клиентам Первый вариант: Минусы: может дать сбой, если период запроса изменений с сервера будет довольно большим (ну там 10 сек или минута), а если будет очень маленьким - возрастает нагрузка на сервер. Как делать: на сервере таблица блокировок, каждый клиент каждую секунду/десять/минуту идет в эту таблицу, забирает обновления и обновляет свое состояние Второй вариант: Минусы: если отвалилась сеть - уведомление с сервера не дойдет, сбой, либо прикручивать систему подтверждения доставки уведомления. Как делать: нужна рассылка, значит на сервере нужен список активных клиентов с их адресами, каждый клиент должен уметь принимать данные и обновлять свое состояние. На ходу на ум приходит две технологии рассылок - в сервере приложений, через сервер БД. Сервер приложений: программный сервер, полностью пишется сам или используются готовые решения (ну например frozenmountain websync, signalr - хотя это для веба я использовал, можно погуглить для вин-формс, а в websync были примеры для нативных iOS приложений). Сервер БД: его можно настроить на уведомления клиентов об изменении данных в таблицах, например в MS SQL это делается, насколько я помню, через data broker и SqlDependency - тогда каждый клиент настраивает для себя эту штуку и натравливает ее на MS SQL. В Oracle тоже есть нечто подобное. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2014, 11:45 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
SerP1983, ВИПРОС владеет всей информацией о БД, ВИПРОС эту БД строит, потому он не только данные умеет синхронизировать без проблем, но и сливает разные модели, выделяет подсхемы в отдельные модели и т.д. на самом деле оптимистическая стратегия - это просто отложенная пессимистическая с офигенным осложнением потому я и сказал про приговор в том смысле, что все равно придется в пессимизме разрешать коллизии несмотря на кажущуюся простоту, оптимизм намного сложнее чем пессимизм (конечно если не все время буркнуть фигню типа - "извините, данные уже накрылись вместо с вашими трудами", а реально попытаться разрешать коллизии) но если прога нифига не сечет в семантике модели, не может на автомате перестроить данные, перезапустить обновления с учетом вновь поступивших и т.д. (т.е привести в семантически правильную форму), то разрешение коллизий автоматом - невыполнимая задача потому я считаю что все эти ОРМ создали впечатление, что работа с БД - простая фигня но так как вы тут воще то с БД не работаете, то в принципе вас эти вещи и не должны волновать, да и не волнует ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 16:45 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
и еще, с подачи мальчика и поддакивания модераторов вы тут стали полными козлами ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 16:47 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
uaggsterТаблица в пользовательском приложении представлена в виде сетки. вся целиком? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 17:17 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRos, Я не получил ответ на свой вопрос. Повторю вопрос, за 2 раза, видимо, смысл до тебя не дошел: покажи как решаются вопросы блокировки и разрешения коллизий в випрос. Мне не нужны тут рассуждения, про пессимистические и оптимистические блокировки, которые, кстати, описываются в приведенных мною ссылках (о ужас, випрос может оказаться детской поделкой). Просто покажи как випрос делает это. Про перестроить данные - бред, какой еще поискать надо. У тебя випрос циферки в финансовых документах сам по себе не перестраивает случаем? И, Саха, тут нет козлов, а вот опускаться до уровня оскорбления оппонентов - низко. И заметь, ты сам начал корчить из себя самого умного. Давай докажи теперь, что это так. Пока я вижу от тебя пердежи в лужу и бред, что странно наблюдать, от самого умного, не находишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 19:26 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
SerP1983, с оскорблений со своими пуками начал ты и продолжаешь по теме что тебе доказывать - то что информированный и уполномоченный алгоритм сильнее чем неинформированный и неуполномоченный? ВИПРОС волею судеб изначально был построен для случаев дополнения и перестроения данных для получения осмысленных состояний модели при оффлайн работе, при котором невозможно ни по каким критериям построить очередь, обслуживания которой приводила бы валидному состоянию модели (можно в качестве примера посмотреть на работу версионника, которая пытается разрешить коллизии между версиями, но у него нет никакого ума, и вся информированность там заканичивается временными метками). Что бы такое было возможным было усилено понятие Модель, что привело к расширению и ужесточению ЕР модели, ООП парадигмы, использования РМД в целях хранения такой модели. Это все описано в документации. Мало кто въезжает и видит выгоду, но пытаются в жизни пользоваться и пока что вроде более менее успешно. Дальше видно будет что с этим сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 19:53 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRos, Ну ты ж опять сливаешься. И ЕР ты хотя бы по-английски написал, а то ведь Единая Россия выходит. Вот зачем ты мне поришь околомаркетинговую чушь? Расширение ООП парадигмы у него. Как у тебя пользователи в один и тот же момент времени работают с одними и теми же данными, ты можешь на это ответить? ВОт ты пример привел с временной меткой, хороший пример. А в випрос то как это устроено? 4-й раз уже один и тот же вопрос задаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 20:09 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
SerP1983, ты просто не читаешь "при одновременной" работе (т.е. все в онлайне) создается блокирующая очередь, это самый дешевый алгоритм синхронизации и тут не надо (ну, во всяком случае если не совсем хочешь отказаться от движков субд существующих, а так можно было бы и тут проанализировать запросы и перестроить очередь обслуживания, по возможности оттягивая время принятия решения) изобретать что либо ну а в офлайне сначала строиться очередь обслуживания, которая приводит (обычно, так как изначально наложены запреты на ввод говна) к валидному состоянию ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 20:25 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRos, То есть ключевое "создается блокирующая очередь"? Я правильно понял, что это и есть pessimistic lock? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 20:37 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
SerP1983, ну да, это простейший случай синхронизации, если модель не позволяет себя нарушать и каждая транзакция во валидно меняет состояние модели или просто нет модели ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 20:55 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ты типа пытаешься доказать что то амебное видение проблемы (поддержка валидного состояния модели при конкуренции) есть теория? да там даже слово нет о модели. это черно-белое видение большой семантической проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 21:03 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRos, Теория (греч. θεωρία — рассмотрение, исследование) — учение, система идей или принципов. Можно ли назвать pessimistic и optimistic lock принципами? Я считаю, можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 21:23 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
SerP1983, я не против, тем более что ты не один просто мне показалось, что тебя интересует решение проблемы, а не пути отфутболивания ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 21:27 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
у MS SQL есть поле типа ROWVERSION (TIMESTAMP). Оповещения нужно делать через сервер приложений. А уж как он там отслеживать будет изменения - это клиентов не парит. Хоть проводить все опреации через него, хоть через SqlDependency отслеживать изменения... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 10:07 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRos, Чтобы решить проблему, надо понять, что решать. У меня возникло ощущение, что топикастер вообще плохо разбирается в теме. Вот я и отправил его к истокам. Можно ли назвать это отфутолил, не знаю, но та информация была бы для него полезна, по моему мнению. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 10:45 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Коллеги, прошу прощение за долгое отсутствие. Мне подумалось вот что: Заказчик не требует блокировки редактируемой записи. Только алерт о том, что она редактируется (кем то), и информацию о том, что она была отредактирована кем то, до того, как ты нажал кнопку "сохранить" на данной записи (ну или вышел из строчки грида, когда она была dirty, и она соответственно, полезла сохранятся [заказчик требует, чтобы "было как в excel"]). Я так понимаю, что это - разные задачи. Информация о том, что "пока ты телился - запись обновили", решается добавлением в табличку поля timestamp, ну и, соответственно, генерацией ошибки на уровне пишущей хранимки, если таймстампы в твоей копии и в таблице - отличаются. Ну и дополнительный режим этой хранимки "пишем всё равно, пофиг на изменения" (ну, когда затираем редактирование предыдущего пользователя). Тут, правда, наверное, надо будет еще подумать, как обыграть ситуацию, когда запись обновили еще раз, пока пользователь размышлял над ответом "затирать/не затирать". Вторая задача - это, собственно, показать, что запись сейчас редактируется. Мне наилучшим решением видится, что все пользователи будут слать в некую таблицу ИД записи, ИД клиента, код захватил/отпустил. Возможно, что туда же эту информацию будут слать триггеры after insert/update/delete, определенные на целевой таблице. Сборщик мусора на сервере будет удалять из этой таблицы строки, относящиеся к тем, на которых уже нет блокировок (чтобы очередь не росла), возможно, с некоторым лагом. На эту табличку думаю навесить select на клиенте с привязанной к нему Query Notification (не знаю что за зверь, буду курить). По идее, эта штуковина должна сообщать нам, если выборка на стороне сервера изменится. Т.е., если нам прилетит сообщение от выборки, что она - поменялась, мы должны перечитать данные из таблицы "блокировок", расставить по другому значки редактирования и выборочно перечитать записи. Остается проблема со сборкой мусора в случае сбоя клиента. Частично это можно решить, думаю, так: Если клиент вошел в другую запись, то все его предыдущие блокировки - отменяются. Если клиент залогинился на сервер - то же самое. Если клиент обновил запись - то, видимо, он потерял ее блокировку. Здесь везде блокировка - это "блокировка", т.е. ничего не блокируется, просто имеется информация о том, что с записью работает пользователь. Проблема в том, что если клиент потерял коннект абнормально - вот тут ничего не сделаешь. Триггера на logoff у MSSQL вроде нету. Не устоялось в голове. Ткните в слабые места, пожалуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 17:05 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
uaggster, а не проще-ли заказчику Google Docs или Office 365 использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 17:32 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
а какой смысл для пользователя видеть некое уведомление о том, что его запись сейчас кем-то редактируется? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 17:37 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ТС, посмотри тут (может тебе такое подойдёт решение): Блокировка процедуры от повторного запуска ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 17:40 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
uaggster, ...почему не хранить тогда версии, а окончательное сохранение истинной отдать на усмотрение главного/супервайзера/инспектора пожарной охраны? ... если никто не решится - сохранять последнюю ... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 17:46 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Konst_Oneа какой смысл для пользователя видеть некое уведомление о том, что его запись сейчас кем-то редактируется? В общем, это требование заказчика. Они хаотически кусками обрабатывают один и тот же набор записей с разных машин. Каждый пользователь, в общем, редактирует свой кусок данных и свою часть записи, но проблема в том, что они могут пересекаться. Я понимаю, звучит не очень убедительно, но так есть. carrotikuaggster, ...почему не хранить тогда версии, а окончательное сохранение истинной отдать на усмотрение главного/супервайзера/инспектора пожарной охраны? ... если никто не решится - сохранять последнюю ... В общем, отредактированные записи всё равно будут сваливаться в "историческую" таблицу триггером. Проблема в том, что пользователь должен увидеть, что при одновременном редактировании он "успел позже". ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 18:12 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
uaggsterсвою часть записи ТЗ - негодное, это понятно. что есть своя часть записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 19:58 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
uaggster"успел позже". это по-русски или по-болгарски написано? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 19:59 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Изопропилuaggsterсвою часть записи ТЗ - негодное, это понятно. что есть своя часть записи? Некая информация, которая у него на бумажном документе. Она соответствует части строки или полной строке в той выборке, которую обрабатывает оператор. Проблема в том, что таких "слегка пересекающихся" частей может быть несколько (и в разных местах, у разных людей). Оператор, исходя из имеющихся на руках первичных документов должен решить, обновлять или нет запись, либо ограничится проставлением некого признака. И да, нормализовать эту штуку - нельзя. Всё и так достаточно нормализовано. Просто стиль работы с документами несколько... ну вы поняли. Изопропилэто по-русски или по-болгарски написано? Зато понятно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 08:56 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
uaggster, 17-77 в 16792084 по-моему, все хорошо расписал, плюсы и минусы. Я сам больше склоняюсь к серверу приложений, так как это лучше подходит под требования, да и возможности там побогаче, например, уведомления и отслеживание разрыва связи делаются очень просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 09:51 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
uaggster, .. да ... это смутно что-то мне напоминает .. :) .. случайно, не списание материалов на объекте стройки? .. когда данные прораба, кладовщика, экспедитора, сметчика и буха-материалиста не бьются ни в каких плоскостях ... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 10:36 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
А зачем все усложнять? Не нужно ничего отслеживать в процессе редактирования. Есть поле ROWVERSION, при сохранении изменений нужно на него смотреть, и если различается - выдавать пользователю измененные поля и предложить действия: откат изменений, накат изменений, накат изменений с учетом обновленных полей. Как то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 11:00 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Arm79, этого недостаточно, ибо разные пользователи одновременно разные поля править хотят ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 13:13 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ИзопропилArm79, этого недостаточно, ибо разные пользователи одновременно разные поля править хотят Этого достаточно, ибо тот кто сохраняет последним - увидит все правки на момент сохранения. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 13:14 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Arm79А зачем все усложнять? Не нужно ничего отслеживать в процессе редактирования. Есть поле ROWVERSION, при сохранении изменений нужно на него смотреть, и если различается - выдавать пользователю измененные поля и предложить действия: откат изменений, накат изменений, накат изменений с учетом обновленных полей. Как то так.+1 Я примерно так и реализовал контур конкурентного редактирования в Абрикосе. Плюс у нас есть история изменений и в сообщении о том, что кто-то изменил данные параллельно с вами, вставляется ссылка на историю, где можно посмотреть последнюю и при желании откатиться на предыдущую версию. Также можно поглядеть как это реализовано в таких решениях как Google Docs, Confluence, Jira... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 14:01 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Arm79ИзопропилArm79, этого недостаточно, ибо разные пользователи одновременно разные поля править хотят Этого достаточно, ибо тот кто сохраняет последним - увидит все правки на момент сохранения. угу и сравнение изменённых полей произведёт полное, в итоге rowversion - как корове седло, сравнение всё равно по полной программе делать ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 19:16 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ИзопропилArm79пропущено... Этого достаточно, ибо тот кто сохраняет последним - увидит все правки на момент сохранения. угу и сравнение изменённых полей произведёт полное, в итоге rowversion - как корове седло, сравнение всё равно по полной программе делатьЗачем и кто произведёт? Петя глазками увидит в истории, что конкретно изменил Вася и примет решение. От кода не требуется что-то сравнивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 19:39 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
skyANA, какая ещё история? Петя правил поле A Вася правил поле B конфликта нет, какие в жопу глазки? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 19:45 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ИзопропилskyANA, какая ещё история? Петя правил поле A Вася правил поле BКоторую надо завести. Изопропилконфликта нет, какие в жопу глазки?Конфликта никогда нет, т.к. кто последний, того и тапки. А глазки в случае разборок не в жопу должны смотреть, а в историю. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 19:51 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
История - это вариант реализации функционала "выдавать пользователю измененные поля". Когда мы их не высчитываем каждый раз, а тупо харним как факт и выдаём пользователю по требованию. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 19:56 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ИзопропилПетя правил поле A Вася правил поле B конфликта нет В общем случае неверно. Данные в В могут быть тем или иным способом зависимы от А. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 20:35 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
если у документа существуют стадии редактирования, зависимые от разных факторов, то необходимо фиксировать состояние документа на каждой стадии и полностью запрещать его изменение пока он не перейдёт на следующий этап обработки. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 12:03 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Konst_Oneесли у документа существуют стадии редактирования, зависимые от разных факторов, то необходимо фиксировать состояние документа на каждой стадии и полностью запрещать его изменение пока он не перейдёт на следующий этап обработки.Как сделал я: пока пользователь что-то редактирует, то изменения пишутся в одну draft версию. Когда он жмёт Save, то изменения накладываются на сам документ, а draft версия переходит в состояние current. Когда явно нет кнопки Save, то можно окончательно фиксировать изменения по истечению какого-то таймаута, в течение которого пользователь бездействует, то есть закончил с редактированием. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 13:00 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
skyANAKonst_Oneесли у документа существуют стадии редактирования, зависимые от разных факторов, то необходимо фиксировать состояние документа на каждой стадии и полностью запрещать его изменение пока он не перейдёт на следующий этап обработки.Как сделал я: пока пользователь что-то редактирует, то изменения пишутся в одну draft версию. Когда он жмёт Save, то изменения накладываются на сам документ, а draft версия переходит в состояние current. Когда явно нет кнопки Save, то можно окончательно фиксировать изменения по истечению какого-то таймаута, в течение которого пользователь бездействует, то есть закончил с редактированием. +1 вполне подходящий сценарий, пусть ТС попробует у себя реализовать ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 13:02 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
skyANAKonst_Oneесли у документа существуют стадии редактирования, зависимые от разных факторов, то необходимо фиксировать состояние документа на каждой стадии и полностью запрещать его изменение пока он не перейдёт на следующий этап обработки.Как сделал я: пока пользователь что-то редактирует, то изменения пишутся в одну draft версию. Когда он жмёт Save, то изменения накладываются на сам документ, а draft версия переходит в состояние current. Когда явно нет кнопки Save, то можно окончательно фиксировать изменения по истечению какого-то таймаута, в течение которого пользователь бездействует, то есть закончил с редактированием. хахахаха ты сделал DataTable :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 18:30 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... Как сделал я: пока пользователь что-то редактирует, то изменения пишутся в одну draft версию. Когда он жмёт Save, то изменения накладываются на сам документ, а draft версия переходит в состояние current. Когда явно нет кнопки Save, то можно окончательно фиксировать изменения по истечению какого-то таймаута, в течение которого пользователь бездействует, то есть закончил с редактированием. хахахаха ты сделал DataTable :)ухухуху, трололо а. речь об Абрикосе, то есть о SaaS web-решении; б. данные хранятся в MongoDB; в. если у пользователя по какой-то причине крашится браузер (приложение) или комп во время редактирования, то draft сохраняется и пользователь может вернуться к его редактированию, после восстановления после сбоя какой на фиг DataTable? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 18:49 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
skyANA, если добавить еще и связи между драфтами (а без них никак, ты ж не огрызки редактируешь небось), ограничения целостности и т.д. получишь DataSet Поздравляю! Ты на верном пути! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 19:17 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosskyANA, если добавить еще и связи между драфтами (а без них никак, ты ж не огрызки редактируешь небось), ограничения целостности и т.д. получишь DataSet Поздравляю! Ты на верном пути!Почитай, что такое MongoDB и подумай, что ты пишешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 19:29 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
skyANA, да какая разницы везде массивы и списки и их отношения ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 19:33 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosskyANA, да какая разницы везде массивы и списки и их отношенияПочитай, почитай. И расскажи нам, зачем документ отображать на DataSet и обратно? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 19:38 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
skyANA, смотря что такое "документ" и "оборот" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 19:43 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosskyANA, смотря что такое "документ" и "оборот" :)Извини, но ты выглядишь как глупый тролль. MongoDB - это документоориентированная БД. Что же такое документ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 19:52 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
skyANA, не знаю, обясни а насчет глупости еще посмотрим :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 20:07 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRosskyANA, не знаю, обясни а насчет глупости еще посмотрим :)Глупо вестись на такой глупый троллинг. 16813978 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 10:34 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
skyANAViPRosskyANA, не знаю, обясни а насчет глупости еще посмотрим :)Глупо вестись на такой глупый троллинг. 16813978 ты давай не осторожничай, обясни все ж что такое "документ" и его "оборот" монго дб - это просто усеченный мумпс и никакого явного определения "документ"ов я там не увидел (кроме каких то пошлых намеков на то, что все "иерархические структуры есть документы" ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 14:13 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRos, достаточно простого определения, что JSON подобный документ - это минимальная запись в MongoDB, структура данных состоящая из пар ключ-значение: Код: javascript 1. 2. 3. 4. 5. 6.
Этого достаточно, чтобы понять, что DataTable и DataSet тут на фиг не нужен. И не надо лезть в бутылку и кидаться фразами "усеченный мумпс" и "пошлые намёки". ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 14:24 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
skyANA, это и есть мумпс и никакого опрделения "документа" там нет, тем более что "оборота" это называлось все время "индексированный мусор", "доклассификационный отстойник" и т.д. механизм динамической классификации ВИПРОС такой отстойник имеет в виде расширенной ЕАВ структуры ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 14:53 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
а DataTable и т.д. это уже уровнем повыше будет, там уже оявлется первичная классификация по набору одноименных свойств иди пиши свой Персик, рано тебе еще до арбузов:) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 14:55 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRos, ведёшь себя как упрямый баран :) Давай, объясни логически, зачем мне DataTable в Абрикосе? К MongoDB нет ADO.NET провайдера, BSON отлично маппится на объекты нужного мне типа и на JSON, последний передаётся клиенту. Там правится и всё это по обратной цепочке передаётся в MongoDB, быстро и просто. Так объясни мне, зачем тут DataTable? Жду от тебя толкового поста, а не чушь, порождённую какими-то твоими комплексами. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 15:57 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Чем тебя раздражает тот факт, что твой арбуз в виде ВИПРОС совершенно не нужен тем людям, что пользуются Wild Apricot? Что ты да тупого троллинга скатился? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:00 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
skyANA, никаких комплексов у меня нет, кроме комплекса бомжа а про дататейбл я писал потому что ты (как и положено) реализовал оригинальну, текующую и предложенную версию записи (что и реализовано в дтатабле + всякие там ивенты на эти случаи) с возможность де/сериализации, что и реализованов дататабле и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:02 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
skyANA, послушай, че ты так разнервинчался я очень уважаю людей, которые хоть что то написали и довели до публики и твой абрикос мне очень даже мил хотя бы по этой причине и не было у меня никаких мыслей сравнить випрос арбузом и тем боле что с абрикосом нет у меня никаких комплексов по поводу випрос (кроме одного - хорошо было бы хотя бы дему разрешить людям поставить и поиграться, но думаю это я как нить решу, 2 года до пенсии всего то :)), за випрос мне платят 8 лет и платят для наемника не очень то и плохо протсо монго это - отстойник и это не плохо и не хорошо ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:06 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
ViPRos, из-за чего ты решил, что я нервничаю? Из-за того, что я смайлики не вставляю в конце постов? Дак ты не смешные вещи пишешь, а просто глупые. Надо было всё-таки не обращать на тебя внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:34 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
skyANA, нет ты какой то не такой все ж чего то в тебе много :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 17:02 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
Давайте все вместе вспомним первые реализации EF и замечательное поле timestamp. Думаю что задача эта яйца выеденного не стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:03 |
|
Как реализовать одновременное редактирование таблицы несколькими пользователями?
|
|||
---|---|---|---|
#18+
mmnickДавайте все вместе вспомним первые реализации EF и замечательное поле timestamp. Думаю что задача эта яйца выеденного не стоит. И каким боком EF до типа timestamp и как они всех спасут? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 09:33 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1402271]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
167ms |
get tp. blocked users: |
1ms |
others: | 335ms |
total: | 581ms |
0 / 0 |