2

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

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

如何保持结构的完整性,而又不对用户施加过多的限制?

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

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

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

4

2 回答 2

3

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

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

于 2012-10-03T14:06:05.053 回答
0

这与任何其他多用户事务系统有何不同?

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

于 2012-10-03T14:04:30.780 回答