204
204
worksheetid SERIAL PRIMARY KEY,
205
205
offeringid INT4 REFERENCES offering (offeringid) NOT NULL,
206
206
identifier VARCHAR NOT NULL,
209
assessable BOOLEAN NOT NULL,
210
order_no INT4 NOT NULL,
211
format TEXT NOT NUll,
209
212
UNIQUE (offeringid, identifier)
212
215
CREATE TABLE worksheet_problem (
213
worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
214
problemid TEXT REFERENCES problem (identifier) NOT NULL,
216
PRIMARY KEY (worksheetid, problemid)
216
ws_prob_id SERIAL PRIMARY KEY,
217
worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
218
problemid TEXT REFERENCES problem (identifier) NOT NULL,
219
224
CREATE TABLE problem_attempt (
220
problemid TEXT REFERENCES problem (identifier) NOT NULL,
221
225
loginid INT4 REFERENCES login (loginid) NOT NULL,
222
worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
226
ws_prob_id INT4 REFERENCES worksheet_problem (ws_prob_id) NOT NULL,
223
227
date TIMESTAMP NOT NULL,
224
228
attempt VARCHAR NOT NULL,
225
229
complete BOOLEAN NOT NULL,
226
230
active BOOLEAN NOT NULL DEFAULT true,
227
PRIMARY KEY (problemid,loginid,worksheetid,date)
231
PRIMARY KEY (loginid,ws_prob_id,date)
230
234
CREATE TABLE problem_save (
231
problemid TEXT REFERENCES problem (identifier) NOT NULL,
232
235
loginid INT4 REFERENCES login (loginid) NOT NULL,
233
worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
236
ws_prob_id INT4 REFERENCES worksheet_problem (ws_prob_id) NOT NULL,
234
237
date TIMESTAMP NOT NULL,
235
238
text TEXT NOT NULL,
236
PRIMARY KEY (problemid,loginid, worksheetid)
239
PRIMARY KEY (loginid, ws_prob_id)
239
242
CREATE TABLE test_suite (