Present iPeer Database Schema
courses
Contains all the courses in the iPeer instance.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
course | string | the course number, ex: APSC 123
|
title | string | a very short course description, ex: Academic Writing
|
homepage | string | a link to the course. Must start with http:// or https://
|
self_enroll | emun(on, off) | not fully implemented. The UI exists to modify this value, but no effect linked to it can be found in code
|
password | string | an MD5 hash of the user password.
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this course. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification.
|
instructor_id | integer | unused, as far as I can tell. The course-instructor is a many-to-many relationship is handled by the user_courses table.
|
evaluation_mixevals
A student's evaluations are put here, for the mixed evaluation type. Each evaluator-evaluate pair is recorded here.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
evaluator | integer | The user submitting the evaluation. They are evaluating other users. | users
|
evaluatee | integer | The user being evaluated. | users
|
score | floating | The total given by the evaluator to the evaluatee. (?)
|
comment_release | integer | Are this entry's comments release to be viewed by other users?
|
grade_release | integer | Are this entry's grades release to be viewed by other users?
|
grp_event_id | integer | Points to the group_events entry this entry is a part of. | group_events
|
event_id | integer | Points to the event that the above group_event entry is part of. | events
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this course. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification.
|
evaluation_mixeval_details
It seems that for each answer to a mixed evaluation question, and entry in this table is generated.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
evaluation_mixeval_id | integer | The ID of the evaluation_mixeval this question answer belongs too. | evaluation_mixeval table.
|
question_number | integer | The question being answered
|
question_comment | text | A textual answer to the question, if present. NULL otherwise.
|
selected_lom | integer | Doesn't seem to be used. All entries set at 0. (?)
|
grade | floating | A grade that the user gave when answering the question. Set to 0.0 if a textual question.
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this course. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification.
|
evaluation_rubrics
Holds all the submissions of evaluatee-evaluator pairs.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_KeyNot used in this table (All 0's) (?)
|
evaluator | integer | The user submitting the evaluation. They are evaluating other users. | users
|
evaluatee | integer | The user being evaluated. | users
|
general_comment | text | A general comment about the evaluatee from the evaluator
|
score | floating | The total score that the evaluatee received from the evaluator.
|
comment_release | integer | Are this entry's comments release to be viewed by other users?
|
grade_release | integer | Are this entry's grades release to be viewed by other users?
|
grp_event_id | integer | Points to the group_events entry this entry is a part of. | group_events
|
event_id | integer | Points to the event that the above group_event entry is part of. | events
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this course. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification.
|
evaluation_rubrics_details
It seems that for each answer to a mixed evaluation question, and entry in this table is generated.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
evaluation_rubric_id | integer | The ID of the evaluation_rubric this question answer belongs too. | evaluation_rubrics
|
criteria_number | integer | The criteria number this entry belongs to. Not a foreign key ( :-/ Ugh... )
|
criteria_comment | text | A textual comment about the evaluatee according to the above creteria.
|
selected_lom | integer | The level-of-mastery the evaluator selected for the evaluatee.
|
grade | floating | The grade the above LOM gives the evaluatee.
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this course. Not used in this table (All 0's) (?) | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. Not used in this table (All NULLS's) | users
|
modified | date | the last time of modification.
|
evaluation_simples
Every time an evaluator saves their progress in simple evaluation for an evaluatee, an entry is saved into this table.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
evaluator | integer | The user submitting the evaluation. They are evaluating other users. | users
|
evaluatee | integer | The user being evaluated. | users
|
score | integer | The score this evaluator gave the evaluatee.
|
eval_comment | text | A comment about the evaluatee by the evaluator.
|
release_status | integer | Unsure (?) (vs grade_release)
|
grp_event_id | integer | Points to the group_events entry this entry is a part of. | group_events
|
event_id | integer | Points to the event that the above group_event entry is part of. | events
|
date_submitted | date | The date the evaluation was submitted. (Does this just copy the info in evaluation_submissions ?)
|
grade_release | integer | Unsure (?) (vs grade_release)
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this course. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification.
|
evaluation_submissions
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
event_id | integer | Points to the event that the above group_event entry is part of. | events
|
grp_event_id | integer | Points to the group_events entry this entry is a part of. | group_events
|
submitter_id | integer | The evaluator's user ID | users
|
submitted | integer | Apparently determined whether the evaluation was submitted or not. I don't see any 0's in the prod2009 database though. Might have something to do with re-releases. Not sure (?).
|
date_submitted | date | The date the evaluator submitted this evaluation.
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification.
|
event_template_types
I think this holds the the entries for the rubric types in iPeer. However, the code often assumes it knows the meanings of evaluation type id's (1,2,3,4), and hard-codes those into the code, sometimes ignoring this table.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
table_name | string | The name of the table that holds these types of evaluations.
|
model_name | string | The name of the model that connects the above table to cake.
|
display_for_selection | integer | A boolean integer. Tells if this type of evaluations should be available for selection when an instructor creates an event
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification
|
events
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
title | string | The title of this event;
|
course_id | integer | The id of the course that this event will appear in | courses
|
description | text | A textual description of this event.
|
event_template_type_id | integer | The type of the evaluation. | event_template_types
|
template_id | integer | The ID of in the entry of this evaluation inside the particular evaluation type's table | simple_evaluations or rubrics or surveys or mixevals
|
self_eval | boolean integer | Does the user evaluate themselves as well?
|
com_req' | boolean integer | Are the comments required?
|
due_date | date | The due date for the event.
|
release_date_begin | date | The when the event will open - start showing up on the student's display.
|
release_date_end | date | The when the event will close - stop showing up on the student's display, even if it was completed.
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification
|
groups
Holds the members for each group in a class.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
group_num | integer | The Group number, no the ID. Not sure why we have it.
|
course_id | integer | The ID of the course this group belongs to | courses
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification
|
groups_members
Connects groups to group members (many to many relationship):
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
group_id | integer | The ID of the group | groups
|
user_id | integer | The user ID of a group member | users
|
That's it :-)
group_events
Connects groups to events, holding other data about the group submission, etc. (many to many relationship).
I think that the extra columns are just to cache other data from the table, and display it to the user.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
group_id | integer | The ID of the group | groups
|
event_id | integer | The ID of the event | event
|
marked | string | One of not reviewed,to review, reviewed. Determined whether the instructor reviewed the comments for any offensive contents or the like. As I understand it, "Not reviewed" means not all submissions are yet complete from group members. "To review" implies that all submissions came in, but are not yet reviewed. "Review" means all submissions were turned in and reviewed by instructor.
|
grade | integer | I have no idea... NULL in all case I've seen so far. Unused (?)
|
grade_release_status | string | Can the users see the grades their group members gave them, or not? Some, None and All are possible.
|
grade_release_status | string | Can the users see the comments their group members gave them, or not? Just like above, Some, None and All are possible.
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created tthis record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification
|
mixevals
Contains a list of Mixed Evaluation (Templates - referenced by evaluation events)
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
name | string | Title of the evaluation
|
total_marks | integer | The total amount of point possible in this evaluation per member.
|
zero_mark | enum(on,off) | Does the lowerst LOM count as a zero score?
|
total_question | integer | The total number of questions - both Lickert and Textual Answer.
|
lickert_question_max | integer | The number of Lickert(Rubric-type) questions.
|
scale_max | integer | The number of LOMs for Lickert questions.
|
prefill_question_max | integer | The number of Textual Questions to Add.
|
availability | enum(public,private) | Determines whether this rubric can be used in an event by users other than the creator.
|
creator_id | integer | the ID of the user who created this record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification
|
mixevals_questions_descs
Holds the LOM descriptions of Lickert (Rubric type) mixed evaluation question.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
mixeval_id | integer | The ID of the mixed evaluation being described. | mixevals
|
question_num | integer | The question this LOM description is for.
|
scale_level | integer | How many points this LOM is worth.
|
descriptor | string | The description of this LOM.
|
mixevals_questions
Holds all the question titles and descriptions for this table
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
mixeval_id | integer | The ID of the mixed evaluation being described. | mixevals
|
question_num | integer | The number of this question in the mixed evaluation.
|
title | text | The question itself
|
instructions | text | A detailed description of the question.
|
question_type | enum(S,T) | The type of question. S stands for Rubric-type, T for text-answer type.
|
required | boolean integer | This question is mandatory. (I'm not sure if this is checked by code).
|
multiplier | integer | The weight of this question (?)
|
scale_level | integer | The total number of LOMs(?)
|
response_type | enum(S,L,NULL) | S denotes a short, single-line answer. L denotes a longer, multi-line answer.
|
personalizes
This table was use to store preferences for iPeer Lists, and course Home display. Ajax List doesn't use this table (but this could be added in the future).
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
user_id | integer | The user ID who this preference is for | users
|
attribute_code | string | The "key" of the attribute.
|
attribute_value | string | The "value" of the attribute.
|
created | date | a date entry for this entry's creation.
|
updated | date | a date entry for this entry's modification.
|
questions
Holds Survey questions, as far as I can tell.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
prompt | text | Holds the question itself.
|
type | enum(M,C,S,L) | The type of the question.
|
master | enum(yes,no) | Not sure.
|
responses
Holds the possible responses for a Survey question.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
question_id | integer | The ID of the question | questions
|
response | text | A response to this question.
|
rubrics
Hold the templates for the rubrics.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
name | string | The name of the rubric
|
total_marks | integer | The total number of marks in this rubric (?)
|
zero_mark | enum(on,off) | Consider lowest LOM to be zero (?)
|
lom_max | integer | The number of LOMs in this evaluation
|
criteria | integer | The number of Criteria for this evaluation
|
availability | enum(public,private) | are others allowed to use/see this rubric template?
|
template | enum(horizontal, vertical) | Not sure (?)
|
creator_id | integer | the ID of the user who created this record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification
|
rubrics_criterias
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
Containts the criteria used for Rubrics
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
rubric_id | integer | The Rubric ID this criteria belongs to | rubrics
|
criteria_num | integer | The position of order this criteria is in.
|
criteria | text | The actual criteria text & description.
|
multiplier | integer | The importance of this criteria; its impact on score.
|
rubrics_loms
The very top descriptions of LOM, general, not per-question
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
rubric_id | integer | The Rubric ID this LOM belongs to | rubrics
|
lom_num | integer | The position number of this LOM
|
lom_comment | text | The description of this LOM
|
A per-question description of a Criteria's the LOMs
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
rubric_id | integer | The Rubric ID this LOM belongs to | rubrics
|
criteria_num | integer | The position of criteria that is described, along with..
|
lom_num | integer | ...the position of the LOM that is described.
|
criteria_comment | The comment specific to this LOM.
|
simple_evaluatons
Contains the templates for Simple Evaluations
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
name | string | The name of this evaluation.
|
description | text | The description/instructions for this evaluation
|
point_per_member | integer | The points assigned to each member.
|
point_low_limit | integer | The minimum number of points per member, I guess, don't think it's used (?)
|
point_high_limit | integer | The maximum number of points per member, I guess, again. (?)
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification
|
surveys
Holds the Surveys. There's some confusion here, since a survey has all the info of an event in it as well. I believe both entries are created for a single survey.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
course_id | integer | The ID of the course this Survey is for. All students in that course participate. | courses
|
user_id | integer | Links to users table, but why (?) Does not seem to match to creator_id, and is usually 1. | users
|
name | string | The name of the survey
|
due_date | date | The date this survey (and event) is due
|
release_date_begin | date | The release date for this survey (and event). Students able to access the survey after this date.
|
release_date_end | date | The final fate for this survey (and event). Students are unable to access the survey after this date.
|
released | emun(0,1) | hm.. no idea... (?)
|
creator_id | integer | the ID of the user who created this record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification
|
survey_questions
Connects the surveys table to the questions table (Many-to-many relationship). Also, gives the questions a number.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
survey_id | integer | The survey this question belongs to. | surveys
|
number | integer | The question number in the survey.
|
question_id | integer | The question ID to put into survey | questions
|
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
survey_id | integer | The survey this answer belongs to. | surveys
|
user_id | integer | The ID of the user thats responding.
|
question_id | integer | The question ID being answered. | questions
|
sub_id | integer | unused (?)
|
response_text | string | If this was a text question, the answer is recoded here
|
response_id | integer | Non-text responses are recorded here | responses
|
survey_group_sets
Holds the Group Sets created from surveys.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
survey_id | integer | The survey this group set belongs to. | surveys
|
set_description | text | The description of this set of survey groups
|
num_groups | integer | the number of groups is this group set.
|
date | integer | date of creation, but integer format (?)
|
released | enum(0,1) | Were these survey groups put into real groups in iPeer yet?
|
survey_groups
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
group_set_id | integer | The group set that this survey_group belongs to. | survey_group_sets
|
group_number | integer | The number of the group in the groups set. Just gives the groups an order, I guess.
|
survey_group_members
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
group_set_id | integer | The group set that the member's survey_group belongs to. | survey_group_sets
|
group_id | integer | The survey group this member belongs to | survey_groups
|
user_id | integer | The User ID of a user in this group | users
|
sys_function
Holds the access permissions, and the location of some iPeer functionality (used sparsely for that).
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
function_code | string | A short code to ID the function
|
function_name | string | A longer function name
|
parent_id | integer | Not sure (?)
|
controller_name | string | The name for the controller this function sits in
|
url_link | string | The link to CakePHP's was to call this function.
|
PermissionTypes | setof(A,I,S) | Determines who is allowed to access this function. A is Admin, I stands for Instructors, and S for Students.
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification
|
sys_parameters
Holds system configuration variables.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
parameter_code | string | A key used by the code to check this setting
|
parameter_value | string | The value of this configuration setting.
|
parameter_type | enum(B,I,S) | The type of the value. B is boolean, I is integer, and S means string.
|
description | text | The description of this parameter
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification
|
users
A list of all of iPeer's users.
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
role | enum('A','S','I') | The role of this user. A stands for Admin, I for instructor, and S for student.
|
username | string | The login username for the user. Expected to be numeric for Students, but can be anything for other user roles.
|
password | string | An md5 hash of a users password
|
first_name | string | The user's first name.
|
last_name | string | The user's last name.
|
student_no | string | If the user is a student, this is their student number. it should be identical to username.
|
title | string | The title of the user, like mr, or ms.
|
email | string | The email of the user
|
last_login | date | unused, all NULL.
|
last_logout | date | unused, all NULL.
|
last_accessed | date | unused, all NULL.
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification
|
user_enrols
Connects courses and students (many-to-many relationship)
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
course_id | The ID of the course the student is enrolled in. | courses
|
user_id | The ID of the student that's enrolled in this course. | users
|
record_status | enum(A,I) | either 'A' or 'I', representing active or inactive. Not always checked by code.
|
creator_id | integer | the ID of the user who created this record. | users
|
created | date | a date entry for this entry's creation.
|
updater_id | integer | the last user's ID who changed this record. | users
|
modified | date | the last time of modification
|
user_courses
Connects courses and instructors & admins (many-to-many relationship)
Column | Type | Description | Foreign Key to table...
|
id | integer | Primary_Key
|
user_id | The ID of the student that's enrolled in this course. | users
|
course_id | The ID of the course the student is enrolled in. | courses
|
access_right | enum(O,A,R) | The access rights to this course: |