2

DBに保存する必要がある階層カテゴリのようなツリーがあります。このデータを保存するために MPTT (ネストされたセット) を使用しました。

問題は、このカテゴリを複数のユーザーが、場合によっては同時に編集できるようにする必要があることです。

ユーザーに過度の制約を課すことなく、構造の完全性を維持するにはどうすればよいでしょうか?

構造内の要素を変更すると、他の要素にも影響を与えるという MPTT の性質を考えると (左右の値の変更)。

例のために。ユーザー A が Node1 を削除し、ユーザー B が Node1 の下に Leaf1 を追加します。これにより、Node1 がもう存在しないというエラーがユーザー B に表示されるはずですが、ユーザー B を混乱させるだけだと思います...

この問題に対する実用的な解決策はありますか?

4

2 に答える 2

3

あなたが探しているのは楽観的並行性です。つまり、ユーザーがレコードの編集を開始できるようにしますが、変更を適用する前に、ユーザーが編集を開始したときと同じ状態にあるかどうかを確認します。

他のシナリオは、編集によって影響を受ける可能性のあるすべてのレコードをロックすることですが、ユーザーが変更を行うことを制限します.

于 2012-10-03T14:06:05.053 に答える
0

これは、他のマルチユーザー トランザクション システムとどう違うのでしょうか?

参加しているすべてのテーブルがロックされるように、ユーザー操作をトランザクションに含めます。次に、現在のデータに対して入力を検証し、更新を実行します。

于 2012-10-03T14:04:30.780 に答える