2017-12-06 16 views
0

私はクライアント用のLMSで作業しています。トップレベルのテーブルはCertificatesです。次のレベルはコースです。その下にアクティビティがあります。アクティビティには、ビデオ、スライド、クイズがあります。学習管理システムで学生の進捗状況を追跡する方法

これらの関係を保存するのは簡単で問題はありません。

学生またはユーザーが証明書にサインアップする場合は、その証明書を通じてその学生の進捗状況を追跡する必要があります。だから私は証明書のユニークなバージョンを持っている必要があり、そのすべての子供たちは、私は彼らの進捗状況がそれぞれのアクティビティ、コース、および証明書であることを知ることができます。もう1つの考慮事項は、学生が複数回証明書を記入できることです。

user_id, certificate_id, course_id, activity_idの進捗表を試してみましたが、証明書を複数回登録することはできません。その同じテーブルでは、certificates_users_idを参照して、そのユーザー&証明書の一意のトップレベル参照を確立しようとしましたが、一緒に参加できません。

私は、そのユーザーの進行中の証明書を取得し、そのユーザーが完了したアクティビティが&であることを正確に知りたいと考えています。

+0

まあ、同じユーザーが同じコースに同時に2回登録できないという前提で、certificate_id、user_id、および登録日を持つ可能性のある登録テーブルがあると思います。 – Strawberry

答えて

0

進捗テーブルにattempt_numberという新しいフィールドを追加するだけで、キー:user_id, certificate_id, attempt_numberが一緒にプライマリキーを作成することができ、この方法でユーザーが証明書を複数回完成するシナリオを処理できます。試行番号は1で始まり、次回ユーザーが同じ証明書を発行したときに増分することができます。

認証が完了するたびに履歴が追跡されます。たとえば、ユーザーが認証を完了した後に新しいアクティビティがコースに追加され、簡単に追跡できます。

関連する問題