~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to userdb/users.sql

This commit changes the tutorial service, which now almost exclusively
uses the database to store its data.

Whilst the modifications to tutorial are not yet complete, this commit
should stabilise the database model.

Show diffs side-by-side

added added

removed removed

Lines of Context:
204
204
    worksheetid SERIAL PRIMARY KEY,
205
205
    offeringid  INT4 REFERENCES offering (offeringid) NOT NULL,
206
206
    identifier  VARCHAR NOT NULL,
207
 
    assessable  BOOLEAN,
208
 
    mtime       TIMESTAMP,
 
207
    name        TEXT NOT NULL,
 
208
    data        TEXT NOT NULL,
 
209
    assessable  BOOLEAN NOT NULL,
 
210
    order_no    INT4 NOT NULL,
 
211
    format      TEXT NOT NUll,
209
212
    UNIQUE (offeringid, identifier)
210
213
);
211
214
 
212
215
CREATE TABLE worksheet_problem (
213
 
    worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
214
 
    problemid   TEXT REFERENCES problem (identifier) NOT NULL,
215
 
    optional    BOOLEAN,
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
    seq_no          INT4,
 
220
    active          BOOLEAN,
 
221
    optional        BOOLEAN
217
222
);
218
223
 
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)
228
232
);
229
233
 
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)
237
240
);
238
241
 
239
242
CREATE TABLE test_suite (