203
203
CREATE TABLE worksheet (
204
204
worksheetid SERIAL PRIMARY KEY,
205
205
offeringid INT4 REFERENCES offering (offeringid) NOT NULL,
206
identifier TEXT NOT NULL,
206
identifier VARCHAR NOT NULL,
207
207
name TEXT NOT NULL,
208
208
data TEXT NOT NULL,
209
209
assessable BOOLEAN NOT NULL,
210
seq_no INT4 NOT NULL,
210
order_no INT4 NOT NULL,
211
211
format TEXT NOT NUll,
212
212
UNIQUE (offeringid, identifier)
215
CREATE TABLE worksheet_exercise (
216
ws_ex_id SERIAL PRIMARY KEY,
215
CREATE TABLE worksheet_problem (
217
217
worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
218
exerciseid TEXT REFERENCES exercise (identifier) NOT NULL,
219
seq_no INT4 NOT NULL,
220
active BOOLEAN NOT NULL DEFAULT true,
221
optional BOOLEAN NOT NULL,
222
UNIQUE (worksheetid, exerciseid)
218
problemid TEXT REFERENCES problem (identifier) NOT NULL,
222
PRIMARY KEY (worksheetid, problemid)
225
CREATE TABLE exercise_attempt (
225
CREATE TABLE problem_attempt (
226
problemid TEXT REFERENCES problem (identifier) NOT NULL,
226
227
loginid INT4 REFERENCES login (loginid) NOT NULL,
227
ws_ex_id INT4 REFERENCES worksheet_exercise (ws_ex_id) NOT NULL,
228
worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
228
229
date TIMESTAMP NOT NULL,
229
attempt TEXT NOT NULL,
230
attempt VARCHAR NOT NULL,
230
231
complete BOOLEAN NOT NULL,
231
232
active BOOLEAN NOT NULL DEFAULT true,
232
PRIMARY KEY (loginid, ws_ex_id, date)
233
PRIMARY KEY (problemid,loginid,worksheetid,date)
235
CREATE TABLE exercise_save (
236
CREATE TABLE problem_save (
237
problemid TEXT REFERENCES problem (identifier) NOT NULL,
236
238
loginid INT4 REFERENCES login (loginid) NOT NULL,
237
ws_ex_id INT4 REFERENCES worksheet_exercise (ws_ex_id) NOT NULL,
239
worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
238
240
date TIMESTAMP NOT NULL,
239
241
text TEXT NOT NULL,
240
PRIMARY KEY (loginid, ws_ex_id)
242
PRIMARY KEY (problemid,loginid, worksheetid)
243
245
CREATE TABLE test_suite (
244
246
suiteid SERIAL PRIMARY KEY,
245
exerciseid TEXT REFERENCES exercise (identifier) NOT NULL,
247
problemid TEXT REFERENCES problem (identifier) NOT NULL,
246
248
description TEXT,