public.vwlearninguserassignmentsummary

public.vwlearninguserassignmentsummary

Description

Comprehensive user-centric view combining learning assignments and results.
Shows complete learning lifecycle per user including assignment status, completion status, and performance metrics.
Key relationships: userdetails -> learningmoduleassignments -> learningassignmentresults via userid+moduleid.
Performance optimized through module-based API retrieval strategy.

Table Definition

CREATE VIEW vwlearninguserassignmentsummary AS (
 SELECT u.id AS user_id,
    u.name AS user_name,
    u.email AS user_email,
    u.department AS user_department,
    lma.id AS assignment_id,
    lma.moduleid AS module_id,
    lm.name AS module_name,
    lm.description AS module_description,
    lma.state AS assignment_state,
    lma.isoverdue AS is_overdue,
    lma.dateassigned AS date_assigned,
    lma.datedue AS date_due,
    lma.daterecommendedforcompletion AS date_recommended_completion,
    lar.id AS result_id,
    lar.assessmentpercentagescore AS assessment_score,
    lar.completionpercentage AS completion_percentage,
    lar.passpercent AS pass_percentage,
    lar.lengthinminutes AS duration_minutes,
    lar.datecreated AS result_date_created,
    lar.datemodified AS result_date_modified,
        CASE
            WHEN (lar.id IS NOT NULL) THEN 'Completed'::text
            WHEN (lma.isoverdue = true) THEN 'Overdue'::text
            WHEN ((lma.state)::text = 'Assigned'::text) THEN 'Assigned'::text
            ELSE 'Unknown'::text
        END AS completion_status,
        CASE
            WHEN ((lar.assessmentpercentagescore IS NOT NULL) AND (lar.passpercent IS NOT NULL)) THEN
            CASE
                WHEN (lar.assessmentpercentagescore >= lar.passpercent) THEN 'Passed'::text
                ELSE 'Failed'::text
            END
            ELSE NULL::text
        END AS pass_status
   FROM (((userdetails u
     LEFT JOIN learningmoduleassignments lma ON (((u.id)::text = (lma.userid)::text)))
     LEFT JOIN learningmodules lm ON (((lma.moduleid)::text = (lm.id)::text)))
     LEFT JOIN learningassignmentresults lar ON ((((lma.userid)::text = (lar.userid)::text) AND ((lma.moduleid)::text = (lar.moduleid)::text))))
  WHERE ((u.state)::text <> 'deleted'::text)
  ORDER BY u.name, lm.name
)

Columns

Name Type Default Nullable Children Parents Comment
user_id varchar(50) true
user_name varchar(200) true
user_email varchar(200) true
user_department varchar(200) true
assignment_id varchar(50) true
module_id varchar(50) true
module_name varchar(100) true
module_description varchar(100) true
assignment_state varchar(50) true
is_overdue boolean true
date_assigned timestamp without time zone true
date_due timestamp without time zone true
date_recommended_completion timestamp without time zone true
result_id varchar(50) true
assessment_score numeric(20,2) true
completion_percentage numeric(20,2) true
pass_percentage numeric(20,2) true
duration_minutes numeric(20,2) true
result_date_created timestamp without time zone true
result_date_modified timestamp without time zone true
completion_status text true
pass_status text true

Referenced Tables

Name Columns Comment Type
public.userdetails 13 BASE TABLE
public.learningmoduleassignments 23 Learning Module Assignments Table - Stores assignment data for learning modules assigned to users.

This table tracks the complete lifecycle of learning module assignments from initial assignment
through completion. It serves as the primary source for assignment tracking and correlates with
learningassignmentresults via userid+moduleid for comprehensive learning analytics.

Key Performance Optimizations:
- Data retrieved using module-based API iteration (O(modules) vs O(users)) for better performance
- User IDs extracted from assignment response data rather than query parameters
- Enables efficient user-module assignment and completion analytics

Cross-table Relationships:
- userid: Links to userdetails.id for user identification and demographics
- moduleid: Links to learningmodules.id for module details and metadata
- Correlates with learningassignmentresults on userid+moduleid for assignment-to-completion tracking

Analytics Capabilities:
- Supports user assignment summaries and module completion rate analysis
- Enables performance metrics and learning analytics across user-module relationships
- Provides foundation for learning dashboard and reporting functionality
BASE TABLE
public.learningmodules 16 BASE TABLE
public.learningassignmentresults 13 Learning Assignment Results Table - Stores detailed results and completion data for learning module assignments.

This table captures the outcome and performance metrics when users complete learning module assignments.
It serves as the results repository that correlates with learningmoduleassignments to provide complete
assignment lifecycle tracking from assignment through completion and assessment.

Key Performance Optimizations:
- Data retrieved using module-based API iteration (O(modules) vs O(users)) for better performance
- User IDs extracted from assignment result response data rather than query parameters
- Enables efficient user-module assignment and completion analytics

Cross-table Relationships:
- userid: Links to userdetails.id for user identification and demographics
- moduleid: Links to learningmodules.id for module details and metadata
- Correlates with learningmoduleassignments on userid+moduleid for assignment-to-completion tracking

Analytics Capabilities:
- Supports user assignment summaries and module completion rate analysis
- Enables performance metrics and learning analytics across user-module relationships
- Provides foundation for learning dashboard, reporting, and performance tracking
- Tracks assessment scores, completion percentages, and timing metrics
BASE TABLE

    • Related Articles

    • public.participantattributesdynamic

      Description Columns Name Type Default Nullable Children Parents Comment keyid varchar(50) false conversationid varchar(50) false conversationstartdate timestamp without time zone false conversationstartdateltc timestamp without time zone true ...
    • public.evalquestiondata

      Description Columns Name Type Default Nullable Children Parents Comment keyid varchar(50) false evaluationid varchar(50) false evaluationformid varchar(50) false questiongroupid varchar(50) true questionid varchar(50) true answerid varchar(50) true ...
    • public.userpresencedetaileddata

      Description User Presence Detailed Data Columns Name Type Default Nullable Children Parents Comment keyid varchar(255) false Primary Key userid varchar(50) true Agent GUID starttime timestamp without time zone false Start Time (UTC) starttimeltc ...
    • public.userinteractionpresencedetaileddata

      Description Columns Name Type Default Nullable Children Parents Comment keyid varchar(255) false userid varchar(50) true starttime timestamp without time zone false starttimeltc timestamp without time zone true endtime timestamp without time zone ...
    • public.userpresencedata

      Description Columns Name Type Default Nullable Children Parents Comment keyid varchar(255) false id varchar(50) true userid varchar(50) true startdate timestamp without time zone false startdateltc timestamp without time zone true timetype ...