ユーザーのタスクを保存するデータベースがあるとします。
簡単にするために、タスクには次のものがあるとしましょう。
- 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 呼び出しtask
task_completion
テーブルには列task
が含まれ、テーブルには列が含まれています-まだ1つのAPI呼び出しだと思いますが、それらのテーブルに両方の列を含めることは理にかなっていますか?task_completion_id
task_completion
task_id