1

ユーザーのタスクを保存するデータベースがあるとします。

簡単にするために、タスクには次のものがあるとしましょう。

  • ID
  • ステータス (新規、To Do、進行中、完了、却下)
  • 説明
  • 所有者/作成者

今私が達成したいのは、ユーザーがタスクを終了したときです-完了または拒否しました。ユーザーにその状態の変化に関する情報を提供してもらいたいです。2 つのフィールドを持つポップアップを想像します。1 つは完了/拒否ステータスから選択するフィールドで、もう 1 つは理由を入力するテキストフィールド エリアです。

ここでの問題は、タスクの完了に関する情報をどのように保存するかということです。

私の考えは、次のようなテーブルを作成するtask_completionsことです。

  • ID
  • task_id
  • コメント (varchar など)

ここで問題は、データベースからユーザーのタスクをロードし、それが完了したことを確認したとき (ここでも、完了または拒否)、タスクの完了に関する情報をロードする必要があるということです。そのため、次の 2 つの API 呼び出しが発生します。

  • タスクを取得
  • task_completion を取得します。task_completion.task_id == task_id

もちろん別の方法もあります - テーブルに task_completion フィールドを追加することができtaskます。もちろん、タスクが完了するまで何も入力されないため、null 可能にします。そして、2 つの API 呼び出しを行う必要はありません。Django シリアライザー (またはthistask_completionのようなもの) のようなものを使用すると、フィールドを単純な数値 (id from task_completion) 列から完全な列に「展開」できるからです。完了に関する情報 (id、task_id、コメント) を含むネストされた JSON - を呼び出すだけget taskです。そして、テーブルにtask_idフィールドを提供する必要さえありません。task_completion

結論から言うと、次の3つの選択肢があると思います。

  • taskおよびtask_completionテーブル。task_completionテーブルには列が含まれtask_idます - 2 つの API 呼び出し
  • taskおよびtask_completionテーブル。taskテーブルには列が含まれtask_completion_idます - 正しく行えば、1 つの API 呼び出し
  • tasktask_completionテーブルには列taskが含まれ、テーブルには列が含まれています-まだ1つのAPI呼び出しだと思いますが、それらのテーブルに両方の列を含めることは理にかなっていますか?task_completion_idtask_completiontask_id
4

0 に答える 0