[参考までに、これは宿題ではありません—質問を単純で読みやすい形式にフォーマットするように努力したので、誰もが考えていると思いますか?繰り返しますが、宿題ではありません。私は仕事をしていて、ただ学ぼうとしています。ありがとう。]
私はトリッキーなものに非常に固執しています。私はJavaの人であり、SQLの人ではないので、これに関するサポートは大歓迎です。
私は次のようなPROJECTテーブルとTASKテーブルを持っています:
**PROJECT**
projectId
name
プロジェクトには多くのタスクがあります。
**TASK**
taskId
projectId
description
userId // the user who is assigned the task
status // either "IN_PROGRESS" or "COMPLETE"
sequence // the numeric sequence of the TASK in the PROJECT
例えば:
Project
projectId=100
name="Build House"
Task
taskId=250 // task IDs are not necessary in numerical order
sequence=1
description="Pour Foundation"
userId=55
status="COMPLETE"
Task
taskId=240
sequence=2
description="Build walls"
userId=56
status="COMPLETE"
Task
taskId=260
sequence=3
description="Install windows"
userId=57
status="IN_PROGRESS"
Task
taskId=245
sequence=4
description="Build roof"
userId=58
status="IN_PROGRESS"
2つのクエリが必要です:
(1)指定されたprojectIdについて、「現在のタスク」を取得します。現在のタスクは、sequence
完了していない番号が最も小さいタスク番号です。私の例では、 getCurrentTask(projectId=100)
taskId 260を返します(これは不完全な最初のものであるため)。
(2)指定されたuserIdについて、彼が「現在のタスク」に割り当てられているプロジェクトのリストを取得します。私の例では、 getProjectsForUserId(userId=57)
projectId100を返します。getProjectsForUserId(userId=58)
何も返しません。