多个用户同时进行树编辑?

时间:2012-10-03 13:59:36

标签: mysql algorithm tree mptt

我有一个像分层类别的树,我需要保存在数据库中。我使用MPTT(嵌套集)来保存这些数据。

问题是这个类别需要多个用户编辑,有时可以同时编辑。

如何在不对用户施加太多限制的情况下保持结构的完整性?

鉴于MPTT的性质,在更改结构中的元素时,它也会影响其他元素(更改左/右值)。

对于前。用户A删除Node1,用户B在Node1下添加Leaf1。这应该给用户B一个错误,即Node1不再存在,但我相信它只会给用户B造成混淆......

这个问题有什么实际的解决方案吗?

2 个答案:

答案 0 :(得分:3)

您正在寻找的是乐观并发。这意味着,您允许用户开始编辑记录,但在应用更改之前,您可以检查记录在用户开始编辑时是否处于相同状态。

其他方案是锁定可能受编辑影响的所有记录,但会限制用户进行任何更改。

答案 1 :(得分:0)

这与其他任何多用户交易系统有何不同?

将您的用户操作包含在事务中,以便锁定所有参与的表。然后根据当前数据验证输入并执行更新。