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

« back to all changes in this revision

Viewing changes to userdb/users.sql

  • Committer: matt.giuca
  • Date: 2009-02-02 22:27:12 UTC
  • Revision ID: svn-v4:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:1191
tutorial: Fixed use of wrong variable names (broke during refactor).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
BEGIN;
2
1
CREATE SEQUENCE login_unixid_seq MINVALUE 1000 MAXVALUE 29999 START WITH 5000;
3
2
 
4
3
CREATE TABLE login (
190
189
 
191
190
-- Worksheets
192
191
-- ----------
193
 
CREATE TABLE exercise (
194
 
    identifier  TEXT PRIMARY KEY,
195
 
    name        TEXT,
196
 
    description TEXT,
197
 
    partial     TEXT,
198
 
    solution    TEXT,
199
 
    include     TEXT,
200
 
    num_rows    INT4
 
192
 
 
193
CREATE TABLE problem (
 
194
    problemid   SERIAL PRIMARY KEY NOT NULL,
 
195
    identifier  VARCHAR UNIQUE NOT NULL,
 
196
    spec        VARCHAR
201
197
);
202
198
 
203
199
CREATE TABLE worksheet (
204
 
    worksheetid SERIAL PRIMARY KEY,
205
 
    offeringid  INT4 REFERENCES offering (offeringid) NOT NULL,
206
 
    identifier  TEXT NOT NULL,
207
 
    name        TEXT NOT NULL,
208
 
    data        TEXT NOT NULL,
209
 
    assessable  BOOLEAN NOT NULL,
210
 
    seq_no      INT4 NOT NULL,
211
 
    format      TEXT NOT NUll,
212
 
    UNIQUE (offeringid, identifier)
213
 
);
214
 
 
215
 
CREATE TABLE worksheet_exercise (
216
 
    ws_ex_id        SERIAL PRIMARY KEY,
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)
223
 
);
224
 
 
225
 
CREATE TABLE exercise_attempt (
 
200
    worksheetid SERIAL PRIMARY KEY NOT NULL,
 
201
    subject     VARCHAR NOT NULL,
 
202
    identifier  VARCHAR NOT NULL,
 
203
    assessable  BOOLEAN,
 
204
    mtime       TIMESTAMP,
 
205
    UNIQUE (subject, identifier)
 
206
);
 
207
 
 
208
CREATE TABLE worksheet_problem (
 
209
    worksheetid INT4 REFERENCES worksheet (worksheetid) NOT NULL,
 
210
    problemid   INT4 REFERENCES problem (problemid) NOT NULL,
 
211
    optional    BOOLEAN,
 
212
    PRIMARY KEY (worksheetid, problemid)
 
213
);
 
214
 
 
215
CREATE TABLE problem_tag (
 
216
    problemid   INT4 REFERENCES problem (problemid),
 
217
    tag         VARCHAR NOT NULL,
 
218
    description VARCHAR,
 
219
    standard    BOOLEAN NOT NULL,
 
220
    added_by    INT4 REFERENCES login (loginid) NOT NULL,
 
221
    date        TIMESTAMP NOT NULL,
 
222
    PRIMARY KEY (problemid,added_by,tag)
 
223
);
 
224
 
 
225
CREATE TABLE problem_test_case (
 
226
    problemid   INT4 REFERENCES problem (problemid) NOT NULL,
 
227
    testcaseid  SERIAL UNIQUE NOT NULL,
 
228
    testcase    VARCHAR,
 
229
    description VARCHAR,
 
230
    visibility  VARCHAR CHECK (visibility in ('public', 'protected', 'private'))
 
231
);
 
232
 
 
233
CREATE TABLE problem_test_case_tag (
 
234
    testcaseid  INT4 REFERENCES problem_test_case (testcaseid) NOT NULL,
 
235
    tag         VARCHAR NOT NULL,
 
236
    description VARCHAR,
 
237
    standard    BOOLEAN NOT NULL,
 
238
    added_by    INT4 REFERENCES login (loginid) NOT NULL,
 
239
    date        TIMESTAMP NOT NULL,
 
240
    PRIMARY KEY (testcaseid,added_by,tag)
 
241
);
 
242
 
 
243
CREATE TABLE problem_attempt (
 
244
    problemid   INT4 REFERENCES problem (problemid) NOT NULL,
226
245
    loginid     INT4 REFERENCES login (loginid) NOT NULL,
227
 
    ws_ex_id    INT4 REFERENCES worksheet_exercise (ws_ex_id) NOT NULL,
228
246
    date        TIMESTAMP NOT NULL,
229
 
    attempt     TEXT NOT NULL,
 
247
    attempt     VARCHAR NOT NULL,
230
248
    complete    BOOLEAN NOT NULL,
231
249
    active      BOOLEAN NOT NULL DEFAULT true,
232
 
    PRIMARY KEY (loginid, ws_ex_id, date)
233
 
);
234
 
 
235
 
CREATE TABLE exercise_save (
236
 
    loginid     INT4 REFERENCES login (loginid) NOT NULL,
237
 
    ws_ex_id    INT4 REFERENCES worksheet_exercise (ws_ex_id) NOT NULL,
238
 
    date        TIMESTAMP NOT NULL,
239
 
    text        TEXT NOT NULL,
240
 
    PRIMARY KEY (loginid, ws_ex_id)
241
 
);
242
 
 
243
 
CREATE TABLE test_suite (
244
 
    suiteid     SERIAL PRIMARY KEY,
245
 
    exerciseid  TEXT REFERENCES exercise (identifier) NOT NULL,
246
 
    description TEXT,
247
 
    seq_no      INT4,
248
 
    function    TEXT,
249
 
    stdin       TEXT
250
 
);
251
 
 
252
 
CREATE TABLE test_case (
253
 
    testid          SERIAL PRIMARY KEY,
254
 
    suiteid         INT4 REFERENCES test_suite (suiteid) NOT NULL,
255
 
    passmsg         TEXT,
256
 
    failmsg         TEXT,
257
 
    test_default    TEXT,
258
 
    seq_no          INT4
259
 
);
260
 
 
261
 
CREATE TABLE suite_variable (
262
 
    varid       SERIAL PRIMARY KEY,
263
 
    suiteid     INT4 REFERENCES test_suite (suiteid) NOT NULL,
264
 
    var_name    TEXT,
265
 
    var_value   TEXT,
266
 
    var_type    TEXT NOT NULL,
267
 
    arg_no      INT4
268
 
);
269
 
 
270
 
CREATE TABLE test_case_part (
271
 
    partid          SERIAL PRIMARY KEY,
272
 
    testid          INT4 REFERENCES test_case (testid) NOT NULL,
273
 
    part_type       TEXT NOT NULL,
274
 
    test_type       TEXT,
275
 
    data            TEXT,
276
 
    filename        TEXT
277
 
);
278
 
COMMIT;
 
250
    PRIMARY KEY (problemid,loginid,date)
 
251
);
 
252
 
 
253
CREATE TABLE problem_save (
 
254
    problemid   INT4 REFERENCES problem (problemid) NOT NULL,
 
255
    loginid     INT4 REFERENCES login (loginid) NOT NULL,
 
256
    date        TIMESTAMP NOT NULL,
 
257
    text        VARCHAR NOT NULL,
 
258
    PRIMARY KEY (problemid,loginid)
 
259
);
 
260
 
 
261
CREATE INDEX problem_attempt_index ON problem_attempt (problemid, loginid);
 
262
 
 
263
CREATE TABLE problem_attempt_breakdown (
 
264
    problemid   INT4 REFERENCES problem (problemid) NOT NULL,
 
265
    testcaseid  INT4 REFERENCES problem_test_case (testcaseid) NOT NULL,
 
266
    loginid     INT4 REFERENCES login (loginid) NOT NULL,
 
267
    date        TIMESTAMP NOT NULL,
 
268
    result      BOOLEAN
 
269
);
 
270
 
 
271
CREATE TABLE problem_prerequisite (
 
272
    parent      INT4 REFERENCES problem (problemid) NOT NULL,
 
273
    child       INT4 REFERENCES problem (problemid) NOT NULL,
 
274
    PRIMARY KEY (parent,child)
 
275
);
 
276