ステップバイステップまたは手続き型アプリケーションにやや似たWebアプリケーションを考え出そうとしています。私はそれを実際に説明することはできず、それを呼び出す方法もわかりませんが、それは、求人応募などの特定のものを達成する方法について段階的な指示を提示するアプリケーションです.
「ユーザーが物事を行う方法を支援するアプリケーション。」
そこで、いくつかの GUI をセットアップしましたが、今、問題の核心であるデータベースのセットアップに直面しています。
私が設計した GUI では、次のように決めました。
伝説:
- 緑色のチェック - 完了
- オレンジ色- ユーザーは現在そのステップにいます
- 灰色- 彼はそこにあるサブステップを開始していません。
写真が示すように、私は 3 つのトップレベルのプロシージャーと、各プロシージャーの下にいくつかの子 プロシージャーを持っています。この図に欠けていることの 1 つは、トップレベルの手順も特定のカテゴリの下にあるということです。
私が達成したいのは、ユーザーの活動を追跡することです。そして、ここに取引があります:
- 次の手順に進むために最初のトップレベルの手順を完了する必要はありません。スキップして戻ることができます -> これについては問題ありません。
- すべての子プロシージャーが完了すると、トップレベルのプロシージャーはその特定のユーザーに対して 1 のフラグを立てます。これは、それが完了したことを意味します。
- 同じことがカテゴリにも当てはまります。そのカテゴリの下のすべてのトップレベルの手順が完了すると、カテゴリはその特定のユーザーに対して 1 のフラグを立てます。これは、そのユーザーがカテゴリを完了したことを意味します。
そして、次のようにデータベースをセットアップする予定です。
-tbl_users-
id | username | password |
-----------------------------------------
1 | some_user | adf8jkdfndsa |
...
tbl_step_cat
id | cat_name |
---------------------------
1 | some_category |
...
tbl_steps
id | step_shortdesc | step_longdesc | cat_id
-------------------------------------------------------------------
1 | some step one | do the following... | 1
-------------------------------------------------------------------
2 | some step two | do the following... | 1
-------------------------------------------------------------------
3 | some step three | do the following... | 2
...
tbl_substeps
id | substep_shortdesc | substep_longdesc | step_id
-------------------------------------------------------------------
1 | some substep one | do the following... | 1
-------------------------------------------------------------------
2 | some substep two | do the following... | 1
-------------------------------------------------------------------
3 | some substep three | do the following... | 1
-------------------------------------------------------------------
4 | some substep a | do the following... | 2
-------------------------------------------------------------------
5 | some substep b | do the following... | 2
-------------------------------------------------------------------
6 | some substep 1 | do the following... | 3
...
そして、ユーザーとステップの間の関係テーブル
tbl_user_stepcat
id | user_id | stepcat_id | datetime
-------------------------------------------------------------------
1 | 1 | 1 | sometime
-------------------------------------------------------------------
2 | 1 | 2 | sometime
-------------------------------------------------------------------
tbl_user_step
id | user_id | step_id | datetime
-------------------------------------------------------------------
1 | 1 | 1 | sometime
-------------------------------------------------------------------
2 | 1 | 2 | sometime
-------------------------------------------------------------------
tbl_user_substep
id | user_id | substep_id | datetime
-------------------------------------------------------------------
1 | 1 | 1 | sometime
-------------------------------------------------------------------
2 | 1 | 2 | sometime
-------------------------------------------------------------------
これが少し長い場合は申し訳ありませんが、コードが原因です。
今、私の質問は、どのようにして望ましい結果を返すかです。ご覧のとおり、ユーザーがアプリケーションにログインしたときに、それらの情報をすぐに表示できるようにします。
現時点では、脳がシャットダウンして焦点が合っていないため、試したことはありません。これまでのところ、これが私の最高の時間です.
このアプリケーションの SQL をコーディングするとしたら、もちろん複数の結合を行います。
最初にすべてのカテゴリを選択して、ユーザーに出力したいと考えています。
SELECT * FROM tbl_step_cat
これですべてのカテゴリが表示されます。次にやりたいことは、「スタイリング」を実行できるように、どのステップが完了しているかどうかを調べることです。
私はするかもしれません
SELECT cat_name FROM tbl_step_cat JOIN
tbl_user_stepcat ON tbl_user_stepcat.stepcat_id = tbl_step_cat.id
...
集中力がなく、今は考えられません。これらを行うにはどうすればよいですか:
- すべての猫/ステップ/サブステップを出力します
- 関係テーブルにエントリがある人を取得します。これは、完了したことを意味します
- どこ
user = session['user']
どうもありがとう、私はちょうどガイダンスが必要でした.