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.
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
)
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 |
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 |