Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20140101.sql =================================================================== diff -u -r6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c -r54dd2285aa0ecea6030a369e81355cb4a8d4b09d --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20140101.sql (.../patch20140101.sql) (revision 6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20140101.sql (.../patch20140101.sql) (revision 54dd2285aa0ecea6030a369e81355cb4a8d4b09d) @@ -8,7 +8,8 @@ ALTER TABLE tl_laasse10_session ADD COLUMN group_leader_uid BIGINT; ALTER TABLE tl_laasse10_session ADD INDEX FK_laasse10_session_1 (group_leader_uid), ADD CONSTRAINT tl_laasse10_session FOREIGN KEY (group_leader_uid) REFERENCES tl_laasse10_user (uid) ON DELETE CASCADE ON UPDATE CASCADE; --- adding a constraint to the assessment user table so no same user_id and session_id can be repetead +-- Adding a constraint to the assessment user table so no same user_id and session_id can be repetead +-- (Please, note there are some duplicate users exist (their session_uid is null), they got formed when techers created questions in authoring. It's required to keep track of questions' authors.) ALTER TABLE tl_laasse10_user ADD UNIQUE INDEX(user_id, session_uid); ----------------------Put all sql statements above here------------------------- Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dbupdates/patch20140101.sql =================================================================== diff -u -r6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c -r54dd2285aa0ecea6030a369e81355cb4a8d4b09d --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dbupdates/patch20140101.sql (.../patch20140101.sql) (revision 6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dbupdates/patch20140101.sql (.../patch20140101.sql) (revision 54dd2285aa0ecea6030a369e81355cb4a8d4b09d) @@ -11,7 +11,15 @@ -- Put automatic letters in front of MCQ answers ALTER TABLE tl_lamc11_content ADD COLUMN prefix_answers_with_letters TINYINT(1) NOT NULL DEFAULT 1; --- Adding a constraint to the MCQ user table so no same user_id and session_id can be repetead +-- Adding a constraint to the MCQ user table so no same user_id and session_id can be repetead. +-- In order to achieve this remove duplicate users and according attempts. +CREATE TABLE temp_select AS SELECT MAX(uid) uid +FROM tl_lamc11_que_usr GROUP BY que_usr_id, mc_session_id; +ALTER TABLE temp_select ADD INDEX index1 (uid ASC); +DELETE FROM tl_lamc11_usr_attempt WHERE que_usr_id NOT IN (SELECT uid FROM temp_select); +DELETE FROM tl_lamc11_que_usr WHERE uid NOT IN (SELECT uid FROM temp_select); +DROP TABLE temp_select; + ALTER TABLE tl_lamc11_que_usr ADD UNIQUE INDEX(que_usr_id, mc_session_id); ----------------------Put all sql statements above here------------------------- Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dbupdates/patch20140101.sql =================================================================== diff -u -r6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c -r54dd2285aa0ecea6030a369e81355cb4a8d4b09d --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dbupdates/patch20140101.sql (.../patch20140101.sql) (revision 6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dbupdates/patch20140101.sql (.../patch20140101.sql) (revision 54dd2285aa0ecea6030a369e81355cb4a8d4b09d) @@ -8,7 +8,15 @@ ALTER TABLE tl_laqa11_session ADD COLUMN qa_group_leader_uid BIGINT; ALTER TABLE tl_laqa11_session ADD INDEX FK_laqa11_session1 (qa_group_leader_uid), ADD CONSTRAINT FK_laqa11_session1 FOREIGN KEY (qa_group_leader_uid) REFERENCES tl_laqa11_que_usr (uid) ON DELETE CASCADE ON UPDATE CASCADE; --- adding a constraint to the QA user table so no same user_id and session_id can be repetead +-- Adding a constraint to the QA user table so no same que_usr_id and qa_session_id can be repetead +-- In order to achieve this remove duplicate users and according responses. +CREATE TABLE temp_select AS SELECT MAX(uid) uid +FROM tl_laqa11_que_usr GROUP BY que_usr_id, qa_session_id; +ALTER TABLE temp_select ADD INDEX index1 (uid ASC); +DELETE FROM tl_laqa11_usr_resp WHERE que_usr_id NOT IN (SELECT uid FROM temp_select); +DELETE FROM tl_laqa11_que_usr WHERE uid NOT IN (SELECT uid FROM temp_select); +DROP TABLE temp_select; + ALTER TABLE tl_laqa11_que_usr ADD UNIQUE INDEX(que_usr_id, qa_session_id); ----------------------Put all sql statements above here------------------------- Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/dbupdates/patch20131227.sql =================================================================== diff -u -r96866054a8598fbe1b6719c40ea9a5ed898f5daf -r54dd2285aa0ecea6030a369e81355cb4a8d4b09d --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/dbupdates/patch20131227.sql (.../patch20131227.sql) (revision 96866054a8598fbe1b6719c40ea9a5ed898f5daf) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/dbupdates/patch20131227.sql (.../patch20131227.sql) (revision 54dd2285aa0ecea6030a369e81355cb4a8d4b09d) @@ -8,7 +8,15 @@ ALTER TABLE tl_lavote11_session ADD COLUMN group_leader_uid BIGINT; ALTER TABLE tl_lavote11_session ADD INDEX FK_lavote11_session_1 (group_leader_uid), ADD CONSTRAINT tl_lavote11_session FOREIGN KEY (group_leader_uid) REFERENCES tl_lavote11_usr (uid) ON DELETE CASCADE ON UPDATE CASCADE; --- adding a constraint to the vote user table so no same user_id and vote_session_id can be repetead +-- Adding a constraint to the vote user table so no same user_id and vote_session_id can be repetead +-- In order to achieve this remove duplicate users and according attempts. +CREATE TABLE temp_select AS SELECT MAX(uid) uid +FROM tl_lavote11_usr GROUP BY user_id, vote_session_id; +ALTER TABLE temp_select ADD INDEX index1 (uid ASC); +DELETE FROM tl_lavote11_usr_attempt WHERE que_usr_id NOT IN (SELECT uid FROM temp_select); +DELETE FROM tl_lavote11_usr WHERE uid NOT IN (SELECT uid FROM temp_select); +DROP TABLE temp_select; + ALTER TABLE tl_lavote11_usr ADD UNIQUE INDEX(user_id, vote_session_id); ----------------------Put all sql statements above here-------------------------