I have been working on a module for a project at work and need advice on the structure of my database.
Let me explain.
I work at Wright State University in the School of Medicine. Each year we take in about 105 new students. Each student basically has the same classes all year long, it is very structured.
All Y1 students have Team Learning (TL) "sessions" in almost all of their classes. A TL session is three different grades all on a single day. First they come to class for example Principles of Disease (POD), they take a test called an Individual Readiness Assessment test (IRAT), then later take a Group Readiness Assessment test (GRAT), then finally take a Application Excersice (AppEx). The GRAT and IRAT are "group" scores. The IRAT is based on a individual score.
#
# Table structure for table `atlas_tl_students`
#
`Class_Year` tinyint(4) default NULL,
`Cohort` year(4) default NULL,
`Email` varchar(30) default NULL,
`Graduation_Year` year(4) NOT NULL default '0000',
`Name_First` text NOT NULL,
`Name_Last` text NOT NULL,
`Name_Middle` text,
`Start_Year` year(4) NOT NULL default '0000',
`SOMS_KEY` int(11) NOT NULL default '0',
`SPRIDEN_PIDM` varchar(25) NOT NULL default '',
`U_Account` varchar(9) NOT NULL default '',
`LDAP_USER` varchar(255) NOT NULL default '',
PRIMARY KEY (`SOMS_KEY`),
UNIQUE KEY `GOBTPAC_LDAP_USER` (`LDAP_USER`)
After adding student to groups I think the group grades I can figure out by adding groups to each "session" or by adding groups to each course and just kinda "autopopulate" each session, but what would be the best way to record the IRAT grades? The IRAT grade is individual and not part of any group grade.
This whole project is a way to get away from the multiple spreadsheets used, and make a Team Learning application for course directors to track their TL efforts. The Dean of the School is a big advocate of the Team Learning "collaborative" effort.
Another option:
`Session_ID` int(11) NOT NULL,
`gid` int(11) NOT NULL default '0',
`SOMS_KEY` int(11) NOT NULL default '0',
grade type (IRAT, GRAT, AppEx, etc.)
grade
primary key: session_id, gid, soms_key, grade type
That way, a student's grades can be determined from one table. You could either insert a record for each student in the group, or leave SOMS_KEY null for the group grades.
There are a couple of issues, too. One, is it possible for a director to have more than one of the same course in the same session? If so, you'll need an additional key on that table (or to make your application define it differently).
Also, by storing the student ID (soms_key) in the grades table, you'll be able to account for changes to the group composition (i.e. if a student drops the course, etc. before the grade is given, you won't have to remove him from the group - just make inactive so no grade is written for inactive students when the group receives a grade.
Obviously, for the IRAT grades and other individual grades, there would be no gid.
Finally, when the next dean places lesser value on the team learning collaborative effort, you simply don't add groups or grade at the group level and no application changes are required...
It would be a grades table, associated to the session table. I'd probably use an integer for the grade field. But if it's possible for any course / test to have a letter grade, too, you'd have to use character / string.
View next topic View previous topic
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum