## School: students, courses, enrollments and grades Student @Students order="lastName" firstName d r / lastName d r studentNumber ds r birthDate date r gradeLevel GradeLevel ds r guardian Guardian Guardian @Students order="lastName" firstName d r / lastName d r phone r email GradeLevel @Configuration order="position" name d r position integer r Teacher @Staff order="lastName" firstName d r / lastName d r email r Course @Academic order="name" name d r gradeLevel GradeLevel ds r teacher Teacher ds capacity integer enrolledCount integer ds formula="(SELECT COUNT(*) FROM enrollment WHERE enrollment.course = id)" Enrollment @Academic order="id desc" student Student d r gradeLevel GradeLevel transient hidden course Course d r subset="forGradeLevel" subsetparams="gradeLevel" enrolledOn date ds default="now" finalGrade double ds passed boolean ds calculated="finalGrade >= 6" RecordGrades @ transient enrollments Enrollment set fixed finalGrade double r