--- /dev/null
+rem\r
+rem Oracle - draft draft draft untested untested untested\r
+rem\r
+\r
+set echo on pagesize 60\r
+spool t.lst\r
+\r
+rem\r
+rem Table structure for table quiz\r
+rem\r
+\r
+drop table prefix_quiz;\r
+CREATE TABLE prefix_quiz (\r
+ id number(10) primary key,\r
+ course number(10) default '0' not null,\r
+ name varchar2(255) default '' not null,\r
+ intro varchar2(255) NOT NULL,\r
+ timeopen number(10) default '0' not null,\r
+ timeclose number(10) default '0' not null,\r
+ attempts number(6) default '0' not null,\r
+ feedback number(4) default '0' not null,\r
+ correctanswers number(4) default '1' not null,\r
+ grademethod number(4) default '1' not null,\r
+ review number(4) default '0' not null,\r
+ questions varchar2(255) NOT NULL,\r
+ sumgrades number(10) default '0' not null,\r
+ grade number(10) default '0' not null,\r
+ timecreated number(10) default '0' not null,\r
+ timemodified number(10) default '0' not null\r
+);\r
+\r
+comment on table prefix_quiz is 'Main information about each quiz';\r
+\r
+drop sequence pqs;\r
+create sequence pqs;\r
+\r
+create or replace trigger pqt\r
+ before insert on prefix_quiz\r
+ referencing new as new_row\r
+ for each row\r
+ begin\r
+ select pqs.nextval into :new_row.id from dual;\r
+ end;\r
+.\r
+/\r
+\r
+insert into prefix_quiz (course,name,intro,questions) values \r
+ (101,'Fundamentals of Testing','Test intro','question 1, question 2');\r
+\r
+insert into prefix_quiz (course,name,intro,questions) values \r
+ (102,'Fundamentals of Testing 2','Test intro','question 3, question 4');\r
+\r
+insert into prefix_quiz (course,name,intro,questions) values \r
+ (101,'Fundamentals of Testing','Test intro','question 1, question 2');\r
+\r
+insert into prefix_quiz (course,name,intro,questions) values \r
+ (102,'Fundamentals of Testing 2','Test intro','question 3, question 4');\r
+\r
+select id,course,substr(name,1,20) name,\r
+ substr(intro,1,12) intro,\r
+ substr(questions,1,22) questions\r
+ from prefix_quiz order by 1,2;\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table quiz_answers\r
+rem\r
+\r
+drop TABLE prefix_quiz_answers;\r
+CREATE TABLE prefix_quiz_answers (\r
+ id number(10) NOT NULL PRIMARY KEY,\r
+ question number(10) default '0' not null,\r
+ answer varchar(255) default '' not null,\r
+ fraction varchar(10) default '0.0',\r
+ feedback varchar2(255) NOT NULL\r
+);\r
+\r
+COMMENT on table prefix_quiz_answers is 'Answers, with a fractional grade (0-1) and feedback';\r
+\r
+drop sequence pqas;\r
+create sequence pqas;\r
+\r
+create or replace trigger pqat\r
+ before insert on prefix_quiz_answers\r
+ referencing new as new_row\r
+ for each row\r
+ begin\r
+ select pqas.nextval into :new_row.id from dual;\r
+ end;\r
+.\r
+/\r
+\r
+insert into prefix_quiz_answers (question,answer,fraction,feedback) values \r
+ (1,'Answer #1','fraction1','feedback1');\r
+\r
+insert into prefix_quiz_answers (question,answer,fraction,feedback) values \r
+ (13,'Answer #13','fraction13','feedback13');\r
+\r
+insert into prefix_quiz_answers (question,answer,fraction,feedback) values \r
+ (31,'Answer #31','fraction31','feedback31');\r
+\r
+insert into prefix_quiz_answers (question,answer,fraction,feedback) values \r
+ (3,'Answer #3','fraction3','feedback3');\r
+\r
+select id,substr(question,1,12),\r
+ substr(answer,1,12),\r
+ substr(fraction,1,12),\r
+ substr(feedback,1,12)\r
+ from prefix_quiz_answers\r
+ order by 1,2;\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table quiz_attempts\r
+rem\r
+\r
+drop table prefix_quiz_attempts;\r
+CREATE TABLE prefix_quiz_attempts (\r
+ id number(10) primary key,\r
+ quiz number(10) default '0' not null,\r
+ userid number(10) default '0' not null,\r
+ attempt number(6) default '0' not null,\r
+ sumgrades varchar(10) default '0.0' not null,\r
+ timestart number(10) default '0' not null,\r
+ timefinish number(10) default '0' not null,\r
+ timemodified number(10) default '0' not null\r
+);\r
+\r
+COMMENT on table prefix_quiz_attempts is 'Stores various attempts on a quiz';\r
+\r
+drop sequence pq_attempts_seq;\r
+create sequence pq_attempts_seq;\r
+\r
+create or replace trigger pq_attempts_trig\r
+ before insert on prefix_quiz_attempts\r
+ referencing new as new_row\r
+ for each row\r
+ begin\r
+ select pq_attempts_seq.nextval into :new_row.id from dual;\r
+ end;\r
+.\r
+/\r
+\r
+insert into prefix_quiz_attempts (\r
+ quiz,userid,attempt,sumgrades,timestart,timefinish,timemodified) \r
+values (1,1,1,'sumgrades',1400,1405,1404);\r
+\r
+select \r
+ id,\r
+ quiz,\r
+ userid,\r
+ attempt,\r
+ substr(sumgrades,1,12) sumgrades,\r
+ timestart,\r
+ timefinish,\r
+ timemodified\r
+ from prefix_quiz_attempts\r
+ order by 1,2;\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table quiz_categories\r
+rem\r
+\r
+drop table prefix_quiz_categories;\r
+CREATE TABLE prefix_quiz_categories (\r
+ id number(10) primary key,\r
+ course number(10) default '0' not null,\r
+ name varchar(255) default '' not null,\r
+ info varchar2(255) not null,\r
+ publish number(4) default '0' not null\r
+);\r
+\r
+COMMENT on table prefix_quiz_categories is 'Categories are for grouping questions';\r
+\r
+drop sequence pq_categories_seq;\r
+create sequence pq_categories_seq;\r
+\r
+create or replace trigger pq_categories_trig\r
+ before insert on prefix_quiz_categories\r
+ referencing new as new_row\r
+ for each row\r
+ begin\r
+ select pq_categories_seq.nextval into :new_row.id from dual;\r
+ end;\r
+.\r
+/\r
+insert into prefix_quiz_categories (course,name,info,publish) values (1,1,1,1);\r
+insert into prefix_quiz_categories (course,name,info,publish) values (2,2,2,2);\r
+insert into prefix_quiz_categories (course,name,info,publish) values (3,3,3,3);\r
+insert into prefix_quiz_categories (course,name,info,publish) values (4,4,4,4);\r
+\r
+select id,\r
+ substr(course,1,4) course,\r
+ substr(name,1,4) name,\r
+ substr(info,1,4) info,\r
+ substr(publish,1,4) publish\r
+ from prefix_quiz_categories\r
+ order by 1,2;\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table quiz_grades\r
+rem\r
+\r
+drop TABLE prefix_quiz_grades;\r
+CREATE TABLE prefix_quiz_grades (\r
+ id number(10) NOT NULL ,\r
+ quiz number(10) default '0' not null,\r
+ userid number(10) default '0' not null,\r
+ grade varchar(10) default '0.0' not null,\r
+ timemodified number(10) default '0' not null\r
+);\r
+\r
+COMMENT on table prefix_quiz_grades is 'Final quiz grade (may be best of several attempts)';\r
+\r
+drop sequence pq_grades_seq;\r
+create sequence pq_grades_seq;\r
+\r
+create or replace trigger pq_grades_trig\r
+ before insert on prefix_quiz_grades\r
+ referencing new as new_row\r
+ for each row\r
+ begin\r
+ select pq_grades_seq.nextval into :new_row.id from dual;\r
+ end;\r
+.\r
+/\r
+insert into prefix_quiz_grades (quiz,userid,grade,timemodified) values (1,1,1,1);\r
+insert into prefix_quiz_grades (quiz,userid,grade,timemodified) values (2,2,2,2);\r
+insert into prefix_quiz_grades (quiz,userid,grade,timemodified) values (3,3,3,3);\r
+insert into prefix_quiz_grades (quiz,userid,grade,timemodified) values (4,4,4,4);\r
+\r
+select id,\r
+ substr(quiz,1,4) quiz,\r
+ substr(userid,1,4) userid,\r
+ substr(grade,1,4) grade,\r
+ substr(timemodified,1,4) timemodified\r
+ from prefix_quiz_grades\r
+ order by 1,2;\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table quiz_multichoice\r
+rem\r
+\r
+drop TABLE prefix_quiz_multichoice;\r
+CREATE TABLE prefix_quiz_multichoice (\r
+ id number(10) primary key,\r
+ question number(10) default '0' not null,\r
+ layout number(4) default '0' not null,\r
+ answers varchar(255) default '' not null,\r
+ single number(4) default '0' not null\r
+);\r
+\r
+COMMENT on table prefix_quiz_multichoice is 'Options for multiple choice questions';\r
+\r
+drop sequence pq_multichoice_seq;\r
+create sequence pq_multichoice_seq;\r
+\r
+create or replace trigger pq_multichoice_trig\r
+ before insert on prefix_quiz_multichoice\r
+ referencing new as new_row\r
+ for each row\r
+ begin\r
+ select pq_multichoice_seq.nextval into :new_row.id from dual;\r
+ end;\r
+.\r
+/\r
+insert into prefix_quiz_multichoice (question,layout,answers,single) values (1,1,1,1);\r
+insert into prefix_quiz_multichoice (question,layout,answers,single) values (2,2,2,2);\r
+insert into prefix_quiz_multichoice (question,layout,answers,single) values (3,3,3,3);\r
+insert into prefix_quiz_multichoice (question,layout,answers,single) values (4,4,4,4);\r
+\r
+select id,\r
+ substr(question,1,4) question,\r
+ substr(layout,1,4) layout,\r
+ substr(answers,1,4) answers,\r
+ substr(single,1,4) single\r
+ from prefix_quiz_multichoice\r
+ order by 1,2;\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table quiz_question_grades\r
+rem\r
+\r
+drop TABLE prefix_quiz_question_grades;\r
+CREATE TABLE prefix_quiz_question_grades (\r
+ id number(10) NOT NULL ,\r
+ quiz number(10) default '0',\r
+ question number(10) default '0',\r
+ grade number(6) default '0'\r
+);\r
+\r
+COMMENT on table prefix_quiz_question_grades is 'The grade for a question in a quiz';\r
+\r
+drop sequence pq_question_grades_seq;\r
+create sequence pq_question_grades_seq;\r
+\r
+create or replace trigger pq_question_grades_trig\r
+ before insert on prefix_quiz_question_grades\r
+ referencing new as new_row\r
+ for each row\r
+ begin\r
+ select pq_question_grades_seq.nextval into :new_row.id from dual;\r
+ end;\r
+.\r
+/\r
+insert into prefix_quiz_question_grades (quiz,question,grade) values (1,1,1);\r
+insert into prefix_quiz_question_grades (quiz,question,grade) values (2,2,2);\r
+insert into prefix_quiz_question_grades (quiz,question,grade) values (3,3,3);\r
+insert into prefix_quiz_question_grades (quiz,question,grade) values (4,4,4);\r
+\r
+select id,\r
+ substr(quiz,1,4) quiz,\r
+ substr(question,1,4) question,\r
+ substr(grade,1,4) grade\r
+ from prefix_quiz_question_grades\r
+ order by 1,2;\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table quiz_randommatch\r
+rem\r
+\r
+drop TABLE prefix_quiz_randommatch;\r
+CREATE TABLE prefix_quiz_randommatch (\r
+ id number(10) primary key,\r
+ question number(10) default '0' not null,\r
+ choose INT DEFAULT '4' NOT NULL\r
+);\r
+\r
+COMMENT on table prefix_quiz_randommatch is 'Info about a random matching question';\r
+\r
+drop sequence pq_randommatch_seq;\r
+create sequence pq_randommatch_seq;\r
+\r
+create or replace trigger pq_randommatch_trig\r
+ before insert on prefix_quiz_randommatch\r
+ referencing new as new_row\r
+ for each row\r
+ begin\r
+ select pq_randommatch_seq.nextval into :new_row.id from dual;\r
+ end;\r
+.\r
+/\r
+insert into prefix_quiz_randommatch (question,choose) values (1,1);\r
+insert into prefix_quiz_randommatch (question,choose) values (2,2);\r
+insert into prefix_quiz_randommatch (question,choose) values (3,3);\r
+insert into prefix_quiz_randommatch (question,choose) values (4,4);\r
+\r
+select id,\r
+ substr(question,1,4) question,\r
+ substr(choose,1,4) choose\r
+ from prefix_quiz_randommatch\r
+ order by 1,2;\r
+\r
+rem\r
+rem Table structure for table quiz_questions\r
+rem\r
+\r
+drop TABLE prefix_quiz_questions;\r
+CREATE TABLE prefix_quiz_questions (\r
+ id number(10) primary key,\r
+ category number(10) default '0' not null,\r
+ name varchar(255) default '' not null,\r
+ questiontext varchar2(255) NOT NULL,\r
+ image varchar(255) default '' not null,\r
+ qtype number(6) default '0' not null\r
+);\r
+\r
+COMMENT on table prefix_quiz_questions is 'The quiz questions themselves';\r
+\r
+drop sequence pq_questions_seq;\r
+create sequence pq_questions_seq;\r
+\r
+create or replace trigger pq_questions_trig\r
+ before insert on prefix_quiz_questions\r
+ referencing new as new_row\r
+ for each row\r
+ begin\r
+ select pq_questions_seq.nextval into :new_row.id from dual;\r
+ end;\r
+.\r
+/\r
+insert into prefix_quiz_questions (category,name,questiontext,image,qtype) values (1,'name1','questiontext1','image1',1);\r
+insert into prefix_quiz_questions (category,name,questiontext,image,qtype) values (2,'name2','questiontext2','image2',2);\r
+insert into prefix_quiz_questions (category,name,questiontext,image,qtype) values (3,'name3','questiontext3','image3',3);\r
+insert into prefix_quiz_questions (category,name,questiontext,image,qtype) values (4,'name4','questiontext4','image4',4);\r
+\r
+select id,\r
+ substr(category,1,4) category,\r
+ substr(name,1,4) name,\r
+ substr(questiontext,1,4) questiontext,\r
+ substr(image,1,4) image,\r
+ substr(qtype,1,4) qtype\r
+ from prefix_quiz_questions\r
+ order by 1,2;\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table quiz_responses\r
+rem\r
+\r
+drop TABLE prefix_quiz_responses;\r
+CREATE TABLE prefix_quiz_responses (\r
+ id number(10) primary key,\r
+ attempt number(10) default '0' not null,\r
+ question number(10) default '0' not null,\r
+ answer varchar(255) default '' not null,\r
+ grade varchar(10) default '0.0' not null\r
+);\r
+\r
+COMMENT on table prefix_quiz_questions is 'Stores user responses to a quiz, and percentage grades';\r
+\r
+drop sequence pq_responses_seq;\r
+create sequence pq_responses_seq;\r
+\r
+create or replace trigger pq_responses_trig\r
+ before insert on prefix_quiz_responses\r
+ referencing new as new_row\r
+ for each row\r
+ begin\r
+ select pq_responses_seq.nextval into :new_row.id from dual;\r
+ end;\r
+.\r
+/\r
+insert into prefix_quiz_responses (attempt,question,answer,grade) \r
+values (1,1,'answer1','grade1');\r
+insert into prefix_quiz_responses (attempt,question,answer,grade) \r
+values (2,2,'answer2','grade2');\r
+insert into prefix_quiz_responses (attempt,question,answer,grade) \r
+values (3,3,'answer3','grade3');\r
+insert into prefix_quiz_responses (attempt,question,answer,grade) \r
+values (4,4,'answer4','grade4');\r
+\r
+select id,\r
+ substr(attempt,1,4) attempt,\r
+ substr(question,1,14) question,\r
+ substr(answer,1,14) answer,\r
+ substr(grade,1,14) grade\r
+ from prefix_quiz_responses\r
+ order by 1,2;\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table quiz_shortanswer\r
+rem\r
+\r
+drop TABLE prefix_quiz_shortanswer;\r
+CREATE TABLE prefix_quiz_shortanswer (\r
+ id number(10) primary key,\r
+ question number(10) default '0' not null,\r
+ answers varchar(255) default '' not null,\r
+ usecase number(2) default '0' not null\r
+);\r
+\r
+COMMENT on table prefix_quiz_shortanswer is 'Options for short answer questions';\r
+\r
+drop sequence pq_shortanswer_seq;\r
+create sequence pq_shortanswer_seq;\r
+\r
+create or replace trigger pq_shortanswer_trig\r
+ before insert on prefix_quiz_shortanswer\r
+ referencing new as new_row\r
+ for each row\r
+ begin\r
+ select pq_shortanswer_seq.nextval into :new_row.id from dual;\r
+ end;\r
+.\r
+/\r
+insert into prefix_quiz_shortanswer (question,answers,usecase) values (1,'answer1',1);\r
+insert into prefix_quiz_shortanswer (question,answers,usecase) values (2,'answer2',2);\r
+insert into prefix_quiz_shortanswer (question,answers,usecase) values (3,'answer3',3);\r
+insert into prefix_quiz_shortanswer (question,answers,usecase) values (4,'answer4',4);\r
+\r
+select id,\r
+ substr(question,1,14) question,\r
+ substr(answers,1,14) answers,\r
+ substr(usecase,1,14) usecase\r
+ from prefix_quiz_shortanswer\r
+ order by 1,2;\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table quiz_truefalse\r
+rem\r
+\r
+drop TABLE prefix_quiz_truefalse;\r
+CREATE TABLE prefix_quiz_truefalse (\r
+ id number(10) primary key,\r
+ question number(10) default '0' not null,\r
+ trueanswer number(10) default '0' not null,\r
+ falseanswer number(10) default '0' not null\r
+);\r
+\r
+COMMENT on table prefix_quiz_truefalse is 'Options for True-False questions';\r
+\r
+\r
+drop sequence pq_truefalse_seq;\r
+create sequence pq_truefalse_seq;\r
+\r
+create or replace trigger pq_truefalse_trig\r
+ before insert on prefix_quiz_truefalse\r
+ referencing new as new_row\r
+ for each row\r
+ begin\r
+ select pq_truefalse_seq.nextval into :new_row.id from dual;\r
+ end;\r
+.\r
+/\r
+insert into prefix_quiz_truefalse (question,trueanswer,falseanswer) values (1,1,1);\r
+insert into prefix_quiz_truefalse (question,trueanswer,falseanswer) values (2,2,2);\r
+insert into prefix_quiz_truefalse (question,trueanswer,falseanswer) values (3,3,3);\r
+insert into prefix_quiz_truefalse (question,trueanswer,falseanswer) values (4,4,4);\r
+\r
+select id,\r
+ substr(question,1,14) question,\r
+ substr(trueanswer,1,14) trueanswer,\r
+ substr(falseanswer,1,14) falseanswer\r
+ from prefix_quiz_truefalse\r
+ order by 1,2;\r
+\r
+select \r
+ substr(table_name,1,28) table_name,\r
+ substr(comments,1,54) comments \r
+ from all_tab_comments\r
+ where owner = 'SCOTT'\r
+ and table_name like 'PREFIX%'\r
+/\r
+\r
+INSERT INTO prefix_log_display VALUES ('quiz', 'view', 'quiz', 'name');\r
+INSERT INTO prefix_log_display VALUES ('quiz', 'report', 'quiz', 'name');\r
+INSERT INTO prefix_log_display VALUES ('quiz', 'attempt', 'quiz', 'name');\r
+INSERT INTO prefix_log_display VALUES ('quiz', 'submit', 'quiz', 'name');\r
+\r
+spool off\r