powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как реализовать одновременное редактирование таблицы несколькими пользователями?
111 сообщений из 111, показаны все 5 страниц
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793378
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, помогите идеей!

Имеется некая таблица на MSSQLSERVER. От нескольких десятков до нескольких сотен, возможно, нескольких тысяч записей.
Несколько (в пределе несколько десятков) пользователей, одновременно редактируют эту таблицу. Редактируют по одной записи.
Таблица в пользовательском приложении представлена в виде сетки. Наверное datagridview, но торг - уместен.

Необходимо реализовать следующее поведение:
1. Все пользователи, которые редактируют данные, должны получать информацию, что указанная запись уже кем то редактируется (ну, карандашик что-ли в фиксированном заголовочном столбце).
2. Однако это не должно блокировать доступ к этой записи других пользователей.
3. Отредактированные записи должны синхронно обновляться у всех пользователей, редактирующих таблицу.
4. В случае, если в этот момент какой то другой пользователь редактирует эту запись, он должен получить сообщение, что запись была изменена.

Подскажите, как это реализовать? Концептуально что-ли...
Хранить информацию о том, что пользователь собирается редактировать запись в какой то таблице? А как получать информацию о том, что пользователь успешно обновил запись? А как собирать мусор, если пользователь захватил запись, но потом ошибочно завершился, не успев вычеркнуть информацию о блокировке?

Помогите не изобретать велосипед!
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793386
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смотрите в сторону Windows Communication Foundation
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793527
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Указанная задача без велосипедов не решается. Пункт 3 адекватно делается при схождении парада планет.
В простейшем случае в таблицу нужно добавить поля:

ItemEdit bit --запись редактируется в данный момент
StartEdit datetime --когда запись начали редактировать
LastItemUpdate datetime --когда запись была последний раз обновлена
ItemInsert datetime --когда запись добавили

На основе данных в этих полях можно реализовать описанное выше.
Удачи.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793529
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если уже "жесткую блокировку" записи на конкретного юзера нужно сделать, то еще и поле с ID юзера нужно добавить, который редактирует запись.
Ваще реализация подобных вещей это ужасный гемор, здесь логики может быть больше в 10 раз чем логики в самом приложении, проще надо быть
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793577
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока делать нефиг, дополню...
В датагриде есть события на начало и конец редактирования записи. Можно по этим событиям устанавливать на сервере ItemEdit в true/false, но если полей много, то дохрена запросов на сервак будет лететь, лучше тогда сделать отдельную формочку для редактирования записи - details, и при ее открытии/закрытии устанавливать ItemEdit в true/false, так система будет работать "жеще".
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793582
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIлучше тогда сделать отдельную формочку для редактирования записи+0х18894

Я блокировки редактирования записей вообще складываю в отдельную таблицу с привязкой к пользователю и экземпляру клиентского приложения. Тогда во-первых не нужно привязываться к записи (одна блокировка может запретить несколько действий, а не одно), во-вторых при аварийной потере клиента, его блокировки спокойно очищаются сервером.

Формочка по умолчанию открывается в режиме ReadOnly, блокировка наступает, когда пользователь явно нажал "Редактировать" (впрочем, это опционально)
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793587
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЯ блокировки редактирования записей вообще складываю в отдельную таблицу с привязкой к пользователю и экземпляру клиентского приложения. Тогда во-первых не нужно привязываться к записи (одна блокировка может запретить несколько действий, а не одно), во-вторых при аварийной потере клиента, его блокировки спокойно очищаются сервером.
Можно конечно и так. Здесь задачка с виду и простая, но вариантов решения можно придумать уйму, а геморнее всего сообщать клиетам что такие-то записи редактируются и динамически все обновлять. Простейший вариант - дергать сервак по таймеру, но если клиентов сотня и дергать каждые 3 секунды это уже попа. Слать сообщение от сервака клиентам, тоже вариант геморный, далеко не всегда так сделать получится.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793655
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делал подобное с помощью SignalR.
Приложение WinForms, подключенное к SignalR серверу. Грид для отображения (read-only), отдельная форма для редактирования вызывается по double-click на записи или по нажатию кнопки.
Если кто-то блокирует запись на редактирование, SignalR рассылает всем остальным подключенным пользователям сообщение о блокировке и для них эта запись становится недоступной для редактирования в пользовательском интерфейсе.
Если кто-то заблокировал запись и потерял связь с сервером, это ловится через событые на сервере по тайм-ауту и все блокировки этого пользователя снимаются.

также реализовано и обновление. после того, как пользователь закончил редактирование, и запись успешно обновлена, то всем рассылается обновленный объект, старая запись замещается новой и разблокируется для последующего редактирования.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793662
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл добавить, что для манипулирования записями в таблице на сервере SignalR дергает соответствующие хранимые процедуры с параметрами.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793739
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все это можно, если с Бд работают только твои клиенты
а что быдет если то то минуя ваш доморощенный механизм будет работать с БД?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793860
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвсе это можно, если с Бд работают только твои клиенты
а что быдет если то то минуя ваш доморощенный механизм будет работать с БД?

В моем случае, общение программа <-> SQL Server идет через веб-сервер и SignalR, и напрямую к сиквелу у пользователей доступа нет.
Логику сделал на хранимках, и права дал только на них, т.е. в любом случае пользователи не имеют прямого доступа к таблицам и ничего там не смогут поменять.

Еще, в приложении сделал кнопочку Refresh, чтобы уж в крайнем случае можно было перечитать самые свежие данные.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793873
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диклевич Александр,

дык это у ВТОЕЙ проги нет прав у пользователей, у других прог запросто может и быть
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793874
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у кого-то есть доступ к шнуру питания сервера и что дальше?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793882
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что мешает реализовать простой механизм "Извлечь запись", наподобие как в SharePoint сделано? Юзер жмет кнопку и если запись свободна, то извлекается и прибивается к пользователю. Теперь её никто не сможет редактировать (кроме администраторов). Задача настолько элементарна, что тут даже усложнять нечего. Два поля, дата/время и пользователь.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793885
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДва поля, дата/время и пользователь.
Дата/время чего? Как известить потом юзеров что данная запись изменена? И как узнать что клиент не отвалился при редактировании? Даты должно быть по крайней мере две, когда началось редактирование и когда сохранили изменения, а еще всем юзерам нужно узнавать о добавлении новых записей, соответственно еще и дата всавки нужна... не так все просто...
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793886
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIДата/время чего?
Дата и время извлечения. Другими словами, чтобы знать, когда юзер застолбил запись под себя.

EDUARD SAPOTSKIКак известить потом юзеров что данная запись изменена?
Это уже другая задача. Любишь же ты мешать в кучу мух с котлетами. Когда юзер опубликует запись, тогда пользователям (которые подписаны на уведомления) придет сообщение по почте.

EDUARD SAPOTSKIИ как узнать что клиент не отвалился при редактировании?
Никак. Этого и не надо знать. Когда будет публикация, тогда будет запись доступна. Не нужно ничего усложнять какими-то кривыми процессами.

EDUARD SAPOTSKIДаты должно быть по крайней мере две, когда началось редактирование и когда сохранили изменения, а еще всем юзерам нужно узнавать о добавлении новых записей, соответственно еще и дата всавки нужна... не так все просто...
Глупости. Не нужны ни две, ни три даты. Это никому не нужная информация. Нужно только знать, когда и кто застолбил запись.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793890
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА у кого-то есть доступ к шнуру питания сервера и что дальше?
значит нефиг заниматься фигней
либо ты как положено что то блокируешь ото всех, либо оптимизм
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793892
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНужно только знать, когда и кто застолбил запись.
это тоже глупость, все это лишнее (ты все равно не сможешь повлиять на ход событий - или прав нет (инфа о юзерах закрыть от тебя), или тот более привлегирован чем ты, и т.д.)
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793894
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стратегий явных 3
пессимизм
оптимизм
смес (для разных юзеров, ролей, объектов их отношений -разные стратегии)
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793912
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosМСУНужно только знать, когда и кто застолбил запись.
это тоже глупость, все это лишнее (ты все равно не сможешь повлиять на ход событий - или прав нет (инфа о юзерах закрыть от тебя), или тот более привлегирован чем ты, и т.д.)
Какой ход событий, ты о чем? Пользователь Вася Пупкин застолбил запись, т.к. у него есть на это права. Остальные сосут болт до тех пор, пока запись не освободится. В чем проблема? Да и с какого перепуга информация о Васи Пупкине закрыта от меня? Мне вообще нравится ваша с Эдиком затея - вечно пытаетесь накрутить каких-то левых требований, пытаетесь додумать новых задач и просто фантазий. Не нужно никакой лапши. Кейс простой - управление одновременным редактированием данных несколькими пользователями. Точка.
Вот тут есть немного аналитики. http://codearticles.ru/articles/1842
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793938
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЭто уже другая задача. Любишь же ты мешать в кучу мух с котлетами. Когда юзер опубликует запись, тогда пользователям (которые подписаны на уведомления) придет сообщение по почте.
Куда плять? По какой почте? Сидит отдел и редактирует записи. Еще и в аутлук лазить узнавать кто что отредактировал? Это комплексная задача, и решать нужно все сразу и скопом!
МСУНикак. Этого и не надо знать. Когда будет публикация, тогда будет запись доступна. Не нужно ничего усложнять какими-то кривыми процессами.
Клиен хочет динамическое обновление! Ему ты не докажешь что сам дурак. Надо значит надо!
МСУГлупости. Не нужны ни две, ни три даты. Это никому не нужная информация. Нужно только знать, когда и кто застолбил запись.
Да. В большинстве случаев это прокатывает, но бывают и привередливые клиенты.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38793986
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIКуда плять? По какой почте? Сидит отдел и редактирует записи. Еще и в аутлук лазить узнавать кто что отредактировал? Это комплексная задача, и решать нужно все сразу и скопом!
Опять фантазируешь. Какой-то отдел выдумал. Который сидит и тужится над одной записью. Ты там укурен, чтоле? Где ты видел такие отделы, которые сидят и потеют над записью? А уведомление может быть где угодно, почта, пуш сообщение, голуби. Это не относится к задаче управление одновременным редактированием данных несколькими пользователями.

EDUARD SAPOTSKIКлиен хочет динамическое обновление! Ему ты не докажешь что сам дурак. Надо значит надо!
Какое еще динамическое обновление? Опять фантазируешь?

EDUARD SAPOTSKIМСУГлупости. Не нужны ни две, ни три даты. Это никому не нужная информация. Нужно только знать, когда и кто застолбил запись.
Да. В большинстве случаев это прокатывает, но бывают и привередливые клиенты.
Да класть на привиредливость. Есть кейс в виде управления одновременным редактированием данных несколькими пользователями. Есть решение - кнопка "Извлечь". Алгоритм работы я объяснил, он проще пареной репы. Всё остальное - это глупое выдумывание каких-то идиотских мультиков, типа динамического обновления, отдела с записью и прочего бреда.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794021
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУViPRosпропущено...

это тоже глупость, все это лишнее (ты все равно не сможешь повлиять на ход событий - или прав нет (инфа о юзерах закрыть от тебя), или тот более привлегирован чем ты, и т.д.)
Какой ход событий, ты о чем? Пользователь Вася Пупкин застолбил запись, т.к. у него есть на это права. Остальные сосут болт до тех пор, пока запись не освободится. В чем проблема? Да и с какого перепуга информация о Васи Пупкине закрыта от меня? Мне вообще нравится ваша с Эдиком затея - вечно пытаетесь накрутить каких-то левых требований, пытаетесь додумать новых задач и просто фантазий. Не нужно никакой лапши. Кейс простой - управление одновременным редактированием данных несколькими пользователями. Точка.
Вот тут есть немного аналитики. http://codearticles.ru/articles/1842
просто в очень многих компаниях не обязательно, что бы кто то знал - чем счас занимается вася пупкин
и к чему это знание - будешь звонить директору типа выйди козел хочу тут поредактировать? :)
проезжали все это с остановками за 35 лет
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794022
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

алгоритм извлечь (заблокировать реально) простой, когда система продумано, атак одни дедлоки и смерть "систем"
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794029
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosпросто в очень многих компаниях не обязательно, что бы кто то знал - чем счас занимается вася пупкин
и к чему это знание - будешь звонить директору типа выйди козел хочу тут поредактировать? :)
проезжали все это с остановками за 35 лет
Да, звони, пиши, стучись в двери. Или жалуйся администрации приложения. А ты как хотел, чтобы само все у работало? Чудес не бывает. Учи пользователей ответственно работать. Это уже административная задача для руководства. Взял запись, поработал и отпусти. И не нужно тут выдумывать левые кейсы, обобщать и накручивать. Для нештатных ситуаций есть админ, всё остальное сами юзеры разрулят. Причём это не технический админ может быть, а руководитель подразделения, наделенный правом возвращать документы других пользователей.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794031
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosМСУ,

алгоритм извлечь (заблокировать реально) простой, когда система продумано, атак одни дедлоки и смерть "систем"
Этой идее сто лет в обед. Даже в шарепоинте так сделано, очень удобно и никто не жалуется. Все проблемы возникают обычно у тех, кто любит на пустом месте обобщать и накручивать. А задача то копеечная.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794032
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Механизм извлечения - это не блокировка, а признак в таблице. Ещё не хватало тут дедлоков, акстись
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794034
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУViPRosМСУ,

алгоритм извлечь (заблокировать реально) простой, когда система продумано, атак одни дедлоки и смерть "систем"
Этой идее сто лет в обед. Даже в шарепоинте так сделано, очень удобно и никто не жалуется. Все проблемы возникают обычно у тех, кто любит на пустом месте обобщать и накручивать. А задача то копеечная.
Ты смотришь с позиции мелкософта. А они смотрят с позиции статистики! Действительно, подход реализованный в шарике статистически съедобен. Но от того что он съедобен у меня денюх в кармане больше не становится! Клиенту нужно дать что он хочет! А хочет он динамику, вот и приходится крутиться и изобретать подобные алгоритмы.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794039
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKI, это всё левотня на постном масле, тем более автоматически обновляемый гуй всегда плохо. Предложи юзеру самому принять решение, обновить или не надо. Подкинь плавающий алерт, пришли голубя. Тем более это всё легко реализуется, т.к. программа знает о том, что сейчас запись отпустили. Пришло время уведомить и при необходимости обновить гуя.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794045
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

ну яи тебе говорю, одного того факта - что объект заблокирован или больше не существует - достаточно для юзера,а для адимнов есть другой инструментарий
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794047
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМеханизм извлечения - это не блокировка, а признак в таблице. Ещё не хватало тут дедлоков, акстись
ну такой бестолковой фигней лучьше ваще не заниматься - это самообман
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794052
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

пессимизм особо важен при внедрении и особенно там где нет культуры автоматизации (не в курсе, что одновременно с тобой еще некоторые могут читать писать и т.д. туда ж)
по мере повышения уровня организации работ потихоньку надо отпустить пессимизм, частично переведя в смешаный режим, а в дальнейшем в полный пессимизм
при это хорошо для привилегированных козлов оставить пессимизм всегда, они е могут и не хотят ждать и работать впустую
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794054
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

"в дальнейшем полный оптимизм" конечно
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794055
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУэто всё левотня на постном масле, тем более автоматически обновляемый гуй всегда плохо. Предложи юзеру самому принять решение, обновить или не надо. Подкинь плавающий алерт, пришли голубя. Тем более это всё легко реализуется, т.к. программа знает о том, что сейчас запись отпустили. Пришло время уведомить и при необходимости обновить гуя.
Если бы я не решал такие задачи, то сейчас сидел бы говноэникеем на говносапорте 1С
Ели главбух на пару с директором решили, что данный стол должен продаватьсь не за 100 багсов а за 120, то через минуту продажники должны в телефонные трубки трещать, какие у них охрененные столы за 120 багсов! А не ждать очередного "голуюя"! Селяви.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794061
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794070
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SerP1983,

ты можешь это куда нить еще повесить
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794075
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosМСУ, ну яи тебе говорю, одного того факта - что объект заблокирован или больше не существует - достаточно для юзера,а для адимнов есть другой инструментарий
Ну тебе эта информация не нужна, а другим нужна. Это вообще не важно и никак не влияет на логику, смысл об этом говорить.

ViPRosМСУМеханизм извлечения - это не блокировка, а признак в таблице. Ещё не хватало тут дедлоков, акстись
ну такой бестолковой фигней лучьше ваще не заниматься - это самообман
Ты о чем?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794079
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

о том, что если кто то рекомендует или реализовывает только оптимистический сценарий доступа к объектам, то он просто не умеет реализовывать пессимистический
это приговор!
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794097
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosДиклевич Александр,

дык это у ВТОЕЙ проги нет прав у пользователей, у других прог запросто может и быть

это моя забота знать кто к чему имеет доступ в моей базе.
И потом, доступ есть у пользователей, но не у программ.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794145
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosМСУ,

о том, что если кто то рекомендует или реализовывает только оптимистический сценарий доступа к объектам, то он просто не умеет реализовывать пессимистический
это приговор!
Мне не важно, кто и как умеет это делать. Был описан кейс в сабже, я написал, как это делается за 5 минут - добавить пару полей и кнопку извлечь. Всё. Зачем что-то ещё нужно? Раздувать щеки способами решения, обобщать что-то на пустом месте, выдумывать новые фантастические сценарии - это не моё. Есть задача - есть решение. Ничего лишнего, всё по существу.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794169
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosSerP1983,

ты можешь это куда нить еще повеситьЯ тебя не понимать, что и куда надо вешать?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794183
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУБыл описан кейс в сабже, я написал, как это делается за 5 минут - добавить пару полей и кнопку извлечь. Всё. Зачем что-то ещё нужно? Раздувать щеки способами решения, обобщать что-то на пустом месте, выдумывать новые фантастические сценарии - это не моё. Есть задача - есть решение. Ничего лишнего, всё по существу.
С ТЗ изволил ознакомиться?
uaggster1. Все пользователи, которые редактируют данные, должны получать информацию, что указанная запись уже кем то редактируется (ну, карандашик что-ли в фиксированном заголовочном столбце).

Можно реализовать по твоей модели? Можно!
uaggster2. Однако это не должно блокировать доступ к этой записи других пользователей.

Здесь ХЗ что ТС имел ввиду, если ридонли то можно, если редактирование толпой то предложенная модель идет лесом.
uaggster3. Отредактированные записи должны синхронно обновляться у всех пользователей, редактирующих таблицу.

Снова твоя модель идет лесом.
uaggster4. В случае, если в этот момент какой то другой пользователь редактирует эту запись, он должен получить сообщение, что запись была изменена.
И здесь прокол!

Извини, но решение не удовлетворительное.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794188
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диклевич АлександрViPRosДиклевич Александр,

дык это у ВТОЕЙ проги нет прав у пользователей, у других прог запросто может и быть

это моя забота знать кто к чему имеет доступ в моей базе.
И потом, доступ есть у пользователей, но не у программ.
Твоя БД у тебя дома
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794189
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SerP1983ViPRosSerP1983,

ты можешь это куда нить еще повеситьЯ тебя не понимать, что и куда надо вешать?
то что ты называешь теорией таковым не является, а пример для детских поделок, теперь вот подумай куда такиее ссылки вещать
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794198
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosSerP1983пропущено...
Я тебя не понимать, что и куда надо вешать?
то что ты называешь теорией таковым не является, а пример для детских поделок, теперь вот подумай куда такиее ссылки вещать Ха-Ха. Кто бы говорил. Человек, который осилил только контролы devexpress и работу с DataTable, вдруг начал думать, что он круче Фаулера? Саха, навешай тогда свои ссылки с випросом, покажи как решаются вопросы блокировки и разрешения коллизий на новом гениальном уровне. А пока твои высказывания пук в лужу.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794205
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SerP1983Ха-Ха. Кто бы говорил. Человек, который осилил только контролы devexpress и работу с DataTable, вдруг начал думать, что он круче Фаулера?
+1, тоже заметил некое величие гуру-аналитика Сахавата :) Он смотрит на нас, как на гавно

SerP1983А пока твои высказывания пук в лужу.
Да половина этих высказываний - наркотический бред, прости Господи... Ну да ладно.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794222
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

да живите в черно белом мире своем с бест практикс от фулера, я то что
вот у сап тож везде бест, но каждый раз почему то приходится переписывать все для каждого предприятия чуть не с нуля
русская душа всегда благосклонно была к западенству, все копировала имея "свой путь" :)
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794229
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават, ты пойми одно, сто раз уже писал - мы не пишем сапы, аксапты и прочие конструкторы. Накойхер ты тут навязываешь свои унылые хранимые процедуры с динамическими датасетами?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794230
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosМСУ,

да живите в черно белом мире своем с бест практикс от фулера, я то что
вот у сап тож везде бест, но каждый раз почему то приходится переписывать все для каждого предприятия чуть не с нуля
русская душа всегда благосклонно была к западенству, все копировала имея "свой путь" :) Бла-Бла-Бла. Опять пошел пердеж в лужу. Саха, еще раз, покажи как постсоветский не западнический випрос "по своему пути" решает вопросы блокировок и коллизий?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794238
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosДиклевич Александрпропущено...


это моя забота знать кто к чему имеет доступ в моей базе.
И потом, доступ есть у пользователей, но не у программ.
Твоя БД у тебя дома
Если у вас так, это не значит что у всех так.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38794542
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы тоже обсудил требования - возможно получиться обойтись более простым решением - блокировка записи.

Иначе концептуально это выглядит так:
1. Есть клиент и сервер
2. Клиент имеет грид, с режимом просмотра (когда ячейку выделили) и режимом редактирования (когда на ячейку ткнули два раза и в ней появился курсор)
3. Когда ячейка вошла в режим редактирования - на сервер отправляется информация - ид записи, номер ячейки, флаг блокировки, кто блокирует
4. Сервер рассылает эту информацию другим клиентам
5. Каждый из клиентов находит у себя эту запись у себя и блокирует ячейку (обводит красным, блокирует режим редактирования и т.п.)

Есть два режима уведомления:
1. Когда клиент периодически запрашивает изменения с сервера
2. Когда сервер рассылает изменения клиентам

Первый вариант:
Минусы: может дать сбой, если период запроса изменений с сервера будет довольно большим (ну там 10 сек или минута), а если будет очень маленьким - возрастает нагрузка на сервер.
Как делать: на сервере таблица блокировок, каждый клиент каждую секунду/десять/минуту идет в эту таблицу, забирает обновления и обновляет свое состояние

Второй вариант:
Минусы: если отвалилась сеть - уведомление с сервера не дойдет, сбой, либо прикручивать систему подтверждения доставки уведомления.
Как делать: нужна рассылка, значит на сервере нужен список активных клиентов с их адресами, каждый клиент должен уметь принимать данные и обновлять свое состояние. На ходу на ум приходит две технологии рассылок - в сервере приложений, через сервер БД.

Сервер приложений: программный сервер, полностью пишется сам или используются готовые решения (ну например frozenmountain websync, signalr - хотя это для веба я использовал, можно погуглить для вин-формс, а в websync были примеры для нативных iOS приложений).

Сервер БД: его можно настроить на уведомления клиентов об изменении данных в таблицах, например в MS SQL это делается, насколько я помню, через data broker и SqlDependency - тогда каждый клиент настраивает для себя эту штуку и натравливает ее на MS SQL. В Oracle тоже есть нечто подобное.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795327
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SerP1983,

ВИПРОС владеет всей информацией о БД, ВИПРОС эту БД строит, потому он не только данные умеет синхронизировать без проблем, но и сливает разные модели, выделяет подсхемы в отдельные модели и т.д.
на самом деле оптимистическая стратегия - это просто отложенная пессимистическая с офигенным осложнением
потому я и сказал про приговор в том смысле, что все равно придется в пессимизме разрешать коллизии
несмотря на кажущуюся простоту, оптимизм намного сложнее чем пессимизм (конечно если не все время буркнуть фигню типа - "извините, данные уже накрылись вместо с вашими трудами", а реально попытаться разрешать коллизии)
но если прога нифига не сечет в семантике модели, не может на автомате перестроить данные, перезапустить обновления с учетом вновь поступивших и т.д. (т.е привести в семантически правильную форму), то разрешение коллизий автоматом - невыполнимая задача
потому я считаю что все эти ОРМ создали впечатление, что работа с БД - простая фигня
но так как вы тут воще то с БД не работаете, то в принципе вас эти вещи и не должны волновать, да и не волнует
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795329
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще, с подачи мальчика и поддакивания модераторов вы тут стали полными козлами
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795364
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggsterТаблица в пользовательском приложении представлена в виде сетки.
вся целиком?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795519
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Я не получил ответ на свой вопрос. Повторю вопрос, за 2 раза, видимо, смысл до тебя не дошел: покажи как решаются вопросы блокировки и разрешения коллизий в випрос. Мне не нужны тут рассуждения, про пессимистические и оптимистические блокировки, которые, кстати, описываются в приведенных мною ссылках (о ужас, випрос может оказаться детской поделкой). Просто покажи как випрос делает это. Про перестроить данные - бред, какой еще поискать надо. У тебя випрос циферки в финансовых документах сам по себе не перестраивает случаем? И, Саха, тут нет козлов, а вот опускаться до уровня оскорбления оппонентов - низко. И заметь, ты сам начал корчить из себя самого умного. Давай докажи теперь, что это так. Пока я вижу от тебя пердежи в лужу и бред, что странно наблюдать, от самого умного, не находишь?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795535
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SerP1983,
с оскорблений со своими пуками начал ты и продолжаешь
по теме
что тебе доказывать - то что информированный и уполномоченный алгоритм сильнее чем неинформированный и неуполномоченный?

ВИПРОС волею судеб изначально был построен для случаев дополнения и перестроения данных для получения осмысленных состояний модели при оффлайн работе, при котором невозможно ни по каким критериям построить очередь, обслуживания которой приводила бы валидному состоянию модели (можно в качестве примера посмотреть на работу версионника, которая пытается разрешить коллизии между версиями, но у него нет никакого ума, и вся информированность там заканичивается временными метками). Что бы такое было возможным было усилено понятие Модель, что привело к расширению и ужесточению ЕР модели, ООП парадигмы, использования РМД в целях хранения такой модели.
Это все описано в документации. Мало кто въезжает и видит выгоду, но пытаются в жизни пользоваться и пока что вроде более менее успешно. Дальше видно будет что с этим сделать.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795553
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Ну ты ж опять сливаешься. И ЕР ты хотя бы по-английски написал, а то ведь Единая Россия выходит. Вот зачем ты мне поришь околомаркетинговую чушь? Расширение ООП парадигмы у него. Как у тебя пользователи в один и тот же момент времени работают с одними и теми же данными, ты можешь на это ответить? ВОт ты пример привел с временной меткой, хороший пример. А в випрос то как это устроено? 4-й раз уже один и тот же вопрос задаю.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795577
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SerP1983,
ты просто не читаешь
"при одновременной" работе (т.е. все в онлайне) создается блокирующая очередь, это самый дешевый алгоритм синхронизации и тут не надо (ну, во всяком случае если не совсем хочешь отказаться от движков субд существующих, а так можно было бы и тут проанализировать запросы и перестроить очередь обслуживания, по возможности оттягивая время принятия решения) изобретать что либо
ну а в офлайне сначала строиться очередь обслуживания, которая приводит (обычно, так как изначально наложены запреты на ввод говна) к валидному состоянию
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795583
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
То есть ключевое "создается блокирующая очередь"? Я правильно понял, что это и есть pessimistic lock?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795587
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SerP1983,

ну да, это простейший случай синхронизации, если модель не позволяет себя нарушать и каждая транзакция во валидно меняет состояние модели или просто нет модели
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795591
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты типа пытаешься доказать что то амебное видение проблемы (поддержка валидного состояния модели при конкуренции) есть теория?
да там даже слово нет о модели. это черно-белое видение большой семантической проблемы
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795598
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Теория (греч. θεωρία — рассмотрение, исследование) — учение, система идей или принципов. Можно ли назвать pessimistic и optimistic lock принципами? Я считаю, можно.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795600
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SerP1983,
я не против, тем более что ты не один
просто мне показалось, что тебя интересует решение проблемы, а не пути отфутболивания
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795818
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у MS SQL есть поле типа ROWVERSION (TIMESTAMP).

Оповещения нужно делать через сервер приложений. А уж как он там отслеживать будет изменения - это клиентов не парит. Хоть проводить все опреации через него, хоть через SqlDependency отслеживать изменения...
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38795876
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Чтобы решить проблему, надо понять, что решать. У меня возникло ощущение, что топикастер вообще плохо разбирается в теме. Вот я и отправил его к истокам. Можно ли назвать это отфутолил, не знаю, но та информация была бы для него полезна, по моему мнению.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38796565
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, прошу прощение за долгое отсутствие.

Мне подумалось вот что:
Заказчик не требует блокировки редактируемой записи. Только алерт о том, что она редактируется (кем то), и информацию о том, что она была отредактирована кем то, до того, как ты нажал кнопку "сохранить" на данной записи (ну или вышел из строчки грида, когда она была dirty, и она соответственно, полезла сохранятся [заказчик требует, чтобы "было как в excel"]).
Я так понимаю, что это - разные задачи.
Информация о том, что "пока ты телился - запись обновили", решается добавлением в табличку поля timestamp, ну и, соответственно, генерацией ошибки на уровне пишущей хранимки, если таймстампы в твоей копии и в таблице - отличаются. Ну и дополнительный режим этой хранимки "пишем всё равно, пофиг на изменения" (ну, когда затираем редактирование предыдущего пользователя). Тут, правда, наверное, надо будет еще подумать, как обыграть ситуацию, когда запись обновили еще раз, пока пользователь размышлял над ответом "затирать/не затирать".
Вторая задача - это, собственно, показать, что запись сейчас редактируется. Мне наилучшим решением видится, что все пользователи будут слать в некую таблицу ИД записи, ИД клиента, код захватил/отпустил.
Возможно, что туда же эту информацию будут слать триггеры after insert/update/delete, определенные на целевой таблице.
Сборщик мусора на сервере будет удалять из этой таблицы строки, относящиеся к тем, на которых уже нет блокировок (чтобы очередь не росла), возможно, с некоторым лагом.
На эту табличку думаю навесить select на клиенте с привязанной к нему Query Notification (не знаю что за зверь, буду курить). По идее, эта штуковина должна сообщать нам, если выборка на стороне сервера изменится.
Т.е., если нам прилетит сообщение от выборки, что она - поменялась, мы должны перечитать данные из таблицы "блокировок", расставить по другому значки редактирования и выборочно перечитать записи.
Остается проблема со сборкой мусора в случае сбоя клиента.
Частично это можно решить, думаю, так: Если клиент вошел в другую запись, то все его предыдущие блокировки - отменяются. Если клиент залогинился на сервер - то же самое. Если клиент обновил запись - то, видимо, он потерял ее блокировку.
Здесь везде блокировка - это "блокировка", т.е. ничего не блокируется, просто имеется информация о том, что с записью работает пользователь.
Проблема в том, что если клиент потерял коннект абнормально - вот тут ничего не сделаешь. Триггера на logoff у MSSQL вроде нету.

Не устоялось в голове.

Ткните в слабые места, пожалуйста!
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38796586
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster, а не проще-ли заказчику Google Docs или Office 365 использовать?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38796593
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а какой смысл для пользователя видеть некое уведомление о том, что его запись сейчас кем-то редактируется?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38796596
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС, посмотри тут (может тебе такое подойдёт решение):
Блокировка процедуры от повторного запуска
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38796607
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster,

...почему не хранить тогда версии, а окончательное сохранение истинной отдать на усмотрение главного/супервайзера/инспектора пожарной охраны? ... если никто не решится - сохранять последнюю ...
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38796643
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneа какой смысл для пользователя видеть некое уведомление о том, что его запись сейчас кем-то редактируется?
В общем, это требование заказчика. Они хаотически кусками обрабатывают один и тот же набор записей с разных машин.
Каждый пользователь, в общем, редактирует свой кусок данных и свою часть записи, но проблема в том, что они могут пересекаться.
Я понимаю, звучит не очень убедительно, но так есть.


carrotikuaggster,

...почему не хранить тогда версии, а окончательное сохранение истинной отдать на усмотрение главного/супервайзера/инспектора пожарной охраны? ... если никто не решится - сохранять последнюю ...
В общем, отредактированные записи всё равно будут сваливаться в "историческую" таблицу триггером. Проблема в том, что пользователь должен увидеть, что при одновременном редактировании он "успел позже".
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38796717
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggsterсвою часть записи
ТЗ - негодное, это понятно.

что есть своя часть записи?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38796718
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster"успел позже".
это по-русски или по-болгарски написано?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38796943
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилuaggsterсвою часть записи
ТЗ - негодное, это понятно.

что есть своя часть записи?
Некая информация, которая у него на бумажном документе. Она соответствует части строки или полной строке в той выборке, которую обрабатывает оператор. Проблема в том, что таких "слегка пересекающихся" частей может быть несколько (и в разных местах, у разных людей). Оператор, исходя из имеющихся на руках первичных документов должен решить, обновлять или нет запись, либо ограничится проставлением некого признака.
И да, нормализовать эту штуку - нельзя. Всё и так достаточно нормализовано. Просто стиль работы с документами несколько... ну вы поняли.
Изопропилэто по-русски или по-болгарски написано?
Зато понятно :)
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38796982
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster,

17-77 в 16792084 по-моему, все хорошо расписал, плюсы и минусы.
Я сам больше склоняюсь к серверу приложений, так как это лучше подходит под требования, да и возможности там побогаче, например, уведомления и отслеживание разрыва связи делаются очень просто.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38797033
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster,

.. да ... это смутно что-то мне напоминает .. :) .. случайно, не списание материалов на объекте стройки? .. когда данные прораба, кладовщика, экспедитора, сметчика и буха-материалиста не бьются ни в каких плоскостях ...
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38797061
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем все усложнять?

Не нужно ничего отслеживать в процессе редактирования. Есть поле ROWVERSION, при сохранении изменений нужно на него смотреть, и если различается - выдавать пользователю измененные поля и предложить действия: откат изменений, накат изменений, накат изменений с учетом обновленных полей.

Как то так.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38797225
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

этого недостаточно, ибо разные пользователи одновременно разные поля править хотят
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38797228
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилArm79,

этого недостаточно, ибо разные пользователи одновременно разные поля править хотят
Этого достаточно, ибо тот кто сохраняет последним - увидит все правки на момент сохранения.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38797293
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79А зачем все усложнять?

Не нужно ничего отслеживать в процессе редактирования. Есть поле ROWVERSION, при сохранении изменений нужно на него смотреть, и если различается - выдавать пользователю измененные поля и предложить действия: откат изменений, накат изменений, накат изменений с учетом обновленных полей.

Как то так.+1

Я примерно так и реализовал контур конкурентного редактирования в Абрикосе.
Плюс у нас есть история изменений и в сообщении о том, что кто-то изменил данные параллельно с вами, вставляется ссылка на историю, где можно посмотреть последнюю и при желании откатиться на предыдущую версию.

Также можно поглядеть как это реализовано в таких решениях как Google Docs, Confluence, Jira...
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38797696
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79ИзопропилArm79,

этого недостаточно, ибо разные пользователи одновременно разные поля править хотят
Этого достаточно, ибо тот кто сохраняет последним - увидит все правки на момент сохранения.

угу и сравнение изменённых полей произведёт полное, в итоге rowversion - как корове седло, сравнение всё равно по полной программе делать
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38797718
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилArm79пропущено...

Этого достаточно, ибо тот кто сохраняет последним - увидит все правки на момент сохранения.

угу и сравнение изменённых полей произведёт полное, в итоге rowversion - как корове седло, сравнение всё равно по полной программе делатьЗачем и кто произведёт? Петя глазками увидит в истории, что конкретно изменил Вася и примет решение. От кода не требуется что-то сравнивать.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38797723
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

какая ещё история?
Петя правил поле A
Вася правил поле B

конфликта нет, какие в жопу глазки?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38797729
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилskyANA,

какая ещё история?
Петя правил поле A
Вася правил поле BКоторую надо завести.

Изопропилконфликта нет, какие в жопу глазки?Конфликта никогда нет, т.к. кто последний, того и тапки.
А глазки в случае разборок не в жопу должны смотреть, а в историю.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38797734
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
История - это вариант реализации функционала "выдавать пользователю измененные поля".
Когда мы их не высчитываем каждый раз, а тупо харним как факт и выдаём пользователю по требованию.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38797766
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилПетя правил поле A
Вася правил поле B

конфликта нет
В общем случае неверно. Данные в В могут быть тем или иным способом зависимы от А.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38798318
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если у документа существуют стадии редактирования, зависимые от разных факторов, то необходимо фиксировать состояние документа на каждой стадии и полностью запрещать его изменение пока он не перейдёт на следующий этап обработки.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38798413
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneесли у документа существуют стадии редактирования, зависимые от разных факторов, то необходимо фиксировать состояние документа на каждой стадии и полностью запрещать его изменение пока он не перейдёт на следующий этап обработки.Как сделал я: пока пользователь что-то редактирует, то изменения пишутся в одну draft версию.
Когда он жмёт Save, то изменения накладываются на сам документ, а draft версия переходит в состояние current.

Когда явно нет кнопки Save, то можно окончательно фиксировать изменения по истечению какого-то таймаута, в течение которого пользователь бездействует, то есть закончил с редактированием.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38798419
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAKonst_Oneесли у документа существуют стадии редактирования, зависимые от разных факторов, то необходимо фиксировать состояние документа на каждой стадии и полностью запрещать его изменение пока он не перейдёт на следующий этап обработки.Как сделал я: пока пользователь что-то редактирует, то изменения пишутся в одну draft версию.
Когда он жмёт Save, то изменения накладываются на сам документ, а draft версия переходит в состояние current.

Когда явно нет кнопки Save, то можно окончательно фиксировать изменения по истечению какого-то таймаута, в течение которого пользователь бездействует, то есть закончил с редактированием.

+1
вполне подходящий сценарий, пусть ТС попробует у себя реализовать
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38798888
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAKonst_Oneесли у документа существуют стадии редактирования, зависимые от разных факторов, то необходимо фиксировать состояние документа на каждой стадии и полностью запрещать его изменение пока он не перейдёт на следующий этап обработки.Как сделал я: пока пользователь что-то редактирует, то изменения пишутся в одну draft версию.
Когда он жмёт Save, то изменения накладываются на сам документ, а draft версия переходит в состояние current.

Когда явно нет кнопки Save, то можно окончательно фиксировать изменения по истечению какого-то таймаута, в течение которого пользователь бездействует, то есть закончил с редактированием.
хахахаха
ты сделал DataTable :)
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38798916
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANAпропущено...
Как сделал я: пока пользователь что-то редактирует, то изменения пишутся в одну draft версию.
Когда он жмёт Save, то изменения накладываются на сам документ, а draft версия переходит в состояние current.

Когда явно нет кнопки Save, то можно окончательно фиксировать изменения по истечению какого-то таймаута, в течение которого пользователь бездействует, то есть закончил с редактированием.
хахахаха
ты сделал DataTable :)ухухуху, трололо

а. речь об Абрикосе, то есть о SaaS web-решении;
б. данные хранятся в MongoDB;
в. если у пользователя по какой-то причине крашится браузер (приложение) или комп во время редактирования, то draft сохраняется и пользователь может вернуться к его редактированию, после восстановления после сбоя

какой на фиг DataTable?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38798948
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

если добавить еще и связи между драфтами (а без них никак, ты ж не огрызки редактируешь небось), ограничения целостности и т.д. получишь DataSet
Поздравляю! Ты на верном пути!
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38798965
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANA,

если добавить еще и связи между драфтами (а без них никак, ты ж не огрызки редактируешь небось), ограничения целостности и т.д. получишь DataSet
Поздравляю! Ты на верном пути!Почитай, что такое MongoDB и подумай, что ты пишешь.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38798967
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

да какая разницы
везде массивы и списки и их отношения
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38798971
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANA,

да какая разницы
везде массивы и списки и их отношенияПочитай, почитай.
И расскажи нам, зачем документ отображать на DataSet и обратно?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38798976
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

смотря что такое "документ" и "оборот" :)
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38798982
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANA,

смотря что такое "документ" и "оборот" :)Извини, но ты выглядишь как глупый тролль.
MongoDB - это документоориентированная БД. Что же такое документ? :)
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38798996
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

не знаю, обясни
а насчет глупости еще посмотрим :)
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799209
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANA,

не знаю, обясни
а насчет глупости еще посмотрим :)Глупо вестись на такой глупый троллинг.

16813978
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799301
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAViPRosskyANA,

не знаю, обясни
а насчет глупости еще посмотрим :)Глупо вестись на такой глупый троллинг.

16813978
ты давай не осторожничай, обясни все ж что такое "документ" и его "оборот"
монго дб - это просто усеченный мумпс и никакого явного определения "документ"ов я там не увидел (кроме каких то пошлых намеков на то, что все "иерархические структуры есть документы"
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799304
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos, достаточно простого определения, что JSON подобный документ - это минимальная запись в MongoDB, структура данных состоящая из пар ключ-значение:
Код: javascript
1.
2.
3.
4.
5.
6.
{
    name: "sue",
    age: 26,
    status: "A",
    groups: [ "news", "sports" ]
}


Этого достаточно, чтобы понять, что DataTable и DataSet тут на фиг не нужен.
И не надо лезть в бутылку и кидаться фразами "усеченный мумпс" и "пошлые намёки".
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799315
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

это и есть мумпс
и никакого опрделения "документа" там нет, тем более что "оборота"
это называлось все время "индексированный мусор", "доклассификационный отстойник" и т.д.
механизм динамической классификации ВИПРОС такой отстойник имеет в виде расширенной ЕАВ структуры
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799316
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а DataTable и т.д. это уже уровнем повыше будет, там уже оявлется первичная классификация по набору одноименных свойств
иди пиши свой Персик, рано тебе еще до арбузов:)
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799335
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos, ведёшь себя как упрямый баран :)

Давай, объясни логически, зачем мне DataTable в Абрикосе?
К MongoDB нет ADO.NET провайдера, BSON отлично маппится на объекты нужного мне типа и на JSON, последний передаётся клиенту.
Там правится и всё это по обратной цепочке передаётся в MongoDB, быстро и просто.

Так объясни мне, зачем тут DataTable? Жду от тебя толкового поста, а не чушь, порождённую какими-то твоими комплексами.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799337
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем тебя раздражает тот факт, что твой арбуз в виде ВИПРОС совершенно не нужен тем людям, что пользуются Wild Apricot?
Что ты да тупого троллинга скатился?
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799339
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

никаких комплексов у меня нет, кроме комплекса бомжа
а про дататейбл я писал потому что ты (как и положено) реализовал оригинальну, текующую и предложенную версию записи (что и реализовано в дтатабле + всякие там ивенты на эти случаи) с возможность де/сериализации, что и реализованов дататабле и т.д.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799342
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

послушай, че ты так разнервинчался
я очень уважаю людей, которые хоть что то написали и довели до публики и твой абрикос мне очень даже мил хотя бы по этой причине
и не было у меня никаких мыслей сравнить випрос арбузом и тем боле что с абрикосом
нет у меня никаких комплексов по поводу випрос (кроме одного - хорошо было бы хотя бы дему разрешить людям поставить и поиграться, но думаю это я как нить решу, 2 года до пенсии всего то :)), за випрос мне платят 8 лет и платят для наемника не очень то и плохо
протсо монго это - отстойник
и это не плохо и не хорошо
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799353
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos, из-за чего ты решил, что я нервничаю? Из-за того, что я смайлики не вставляю в конце постов?
Дак ты не смешные вещи пишешь, а просто глупые. Надо было всё-таки не обращать на тебя внимание.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799363
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

нет ты какой то не такой все ж
чего то в тебе много :)
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799551
Фотография mmnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте все вместе вспомним первые реализации EF и замечательное поле timestamp. Думаю что задача эта яйца выеденного не стоит.
...
Рейтинг: 0 / 0
Как реализовать одновременное редактирование таблицы несколькими пользователями?
    #38799730
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mmnickДавайте все вместе вспомним первые реализации EF и замечательное поле timestamp. Думаю что задача эта яйца выеденного не стоит.
И каким боком EF до типа timestamp и как они всех спасут?
...
Рейтинг: 0 / 0
111 сообщений из 111, показаны все 5 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как реализовать одновременное редактирование таблицы несколькими пользователями?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]