1

我们有一个类似于 gmail 标签的应用程序功能 - 您可以“标记”这些项目。现在这是一个并发应用程序,即这个所谓的“白板”可由多个用户编辑 - 这意味着许多用户可以选择重新/分组项目。基本上同时标记多个项目。

肯定会有冲突,但问题是如何最好地处理它?唯一想到的策略类似于著名的 ALOHA 协议,即,在提交之前检查是否有任何更改 - 如果是,则中止并通知用户;否则提交。这是非常低效的IMO。

这里有两个相似的想法——一个比较难,另一个比较容易:

第一个更容易:) - 覆盖更改,即重复的只会被更新,但新的也会被标记。

困难的一个:检查要“删除”的内容,即,可能有一些不属于该类别(用户 2 说。即,用户 1 进行了更改,用户 2 也同时进行了更改。基本上找到一组标记项目 {user1 - user2})。这将非常困难,恕我直言,真的不值得付出努力。

我想知道在这种情况下使用的最佳实践解决方案是什么,既不会妨碍用户体验,也不会混淆他们。

(这是一个带有 MySQL 后端和 Jquery/ajax 前端的 J2EE/Restlet 应用程序)

4

1 回答 1

2

这个问题的答案实际上取决于您的用户是谁以及他们的期望。如果是我,我想我会在我完成之前被告知用户创建更改(stackoverflow 会这样做),并允许我提交更改或回滚。您提出的所有解决方案似乎都可以接受......这完全取决于您想要做什么。如果您询问如何使用 执行此操作code,则必须先发布一些代码,以便我们可以看到您正在处理的内容。

另一种可能的解决方案类似于#2(只是在发生更改时覆盖更改),但保留对每个更改的修订以允许轻松恢复,并轻松判断更改是否在其他更改之上进行。

于 2012-01-05T07:03:45.560 回答