2

Google Drive Realtime API を使用して todo アプリを作成する予定です。階層構造になるため、タスクはサブタスクを持つことができ、サブタスクなどを持つことができます。タスクは自由に移動できます。つまり、兄弟間の位置/インデックスは変更できますが、移動することもできます。それを別の親に。

Realtime API を使用する場合、これらの動きをアトミックにすることに注意する必要があることがわかりました。動画で Google のエンジニアは、これを行う最善の方法は階層モデルをフラットに表現することであると説明しています。各アイテム/タスクには、その親を指すプロパティがあります。このように、タスクを別の親に移動する操作は 1 つだけです。つまり、親プロパティを変更します (1 つの親の子リストから削除し、新しい親の子リストに追加する代わりに: 2 つの操作 > アトミックではありません)。

親タスク内の子タスクの順序も維持する必要があることを除いて、これは私のプロジェクトでは問題なく機能します。タスクがそれが親であることしか知らない場合、どうすればこれを行うことができますか? どうもありがとう、ルーベン

4

1 に答える 1

0

私はこれがうまくいくはずだと思います.推奨されるように、各タスクがその親タスクを指すようにします. さらに、各タスクには、その子タスクの並べ替えられたリストが保持されます。次に、子タスクのリストをユーザーに表示するときに、正しい親を指していないタスクを除外します。複数の親の下で同じタスクを実行することがありますが、ユーザーには表示されません。

危険なのは、競合状態のために、他のタスクの子リストにリストされていないタスクが発生することですが、それは起こり得ないと思います。

もう 1 つの方法は、各タスクに「並べ替え順序」の値 (実数) を格納させることです。UI は、表示する前にそれらを並べ替えます。2 人のユーザーが同じ場所にタスクを追加すると、同じ値を取得するリスクがありますが、その場合、2 つのタスクの順序が明確に定義されていないため、問題にはなりません。

于 2014-09-10T23:30:04.923 に答える