212
212
UNIQUE (offeringid, identifier)
215
CREATE TABLE worksheet_problem (
216
ws_prob_id SERIAL PRIMARY KEY,
215
CREATE TABLE worksheet_exercise (
216
ws_ex_id SERIAL PRIMARY KEY,
217
217
worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
218
problemid TEXT REFERENCES problem (identifier) NOT NULL,
218
exerciseid TEXT REFERENCES exercise (identifier) NOT NULL,
219
219
seq_no INT4 NOT NULL,
220
220
active BOOLEAN NOT NULL DEFAULT true,
221
221
optional BOOLEAN NOT NULL,
222
UNIQUE (worksheetid, problemid)
222
UNIQUE (worksheetid, exerciseid)
225
CREATE TABLE problem_attempt (
225
CREATE TABLE exercise_attempt (
226
226
loginid INT4 REFERENCES login (loginid) NOT NULL,
227
ws_prob_id INT4 REFERENCES worksheet_problem (ws_prob_id) NOT NULL,
227
ws_ex_id INT4 REFERENCES worksheet_exercise (ws_ex_id) NOT NULL,
228
228
date TIMESTAMP NOT NULL,
229
229
attempt TEXT NOT NULL,
230
230
complete BOOLEAN NOT NULL,
231
231
active BOOLEAN NOT NULL DEFAULT true,
232
PRIMARY KEY (loginid, ws_prob_id, date)
232
PRIMARY KEY (loginid, ws_ex_id, date)
235
CREATE TABLE problem_save (
235
CREATE TABLE exercise_save (
236
236
loginid INT4 REFERENCES login (loginid) NOT NULL,
237
ws_prob_id INT4 REFERENCES worksheet_problem (ws_prob_id) NOT NULL,
237
ws_ex_id INT4 REFERENCES worksheet_exercise (ws_ex_id) NOT NULL,
238
238
date TIMESTAMP NOT NULL,
239
239
text TEXT NOT NULL,
240
PRIMARY KEY (loginid, ws_prob_id)
240
PRIMARY KEY (loginid, ws_ex_id)
243
243
CREATE TABLE test_suite (
244
244
suiteid SERIAL PRIMARY KEY,
245
problemid TEXT REFERENCES problem (identifier) NOT NULL,
245
exerciseid TEXT REFERENCES exercise (identifier) NOT NULL,
246
246
description TEXT,