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

« back to all changes in this revision

Viewing changes to userdb/users.sql

  • Committer: William Grant
  • Date: 2010-07-30 11:52:23 UTC
  • Revision ID: grantw@unimelb.edu.au-20100730115223-bcyxqpefhp514ra8
Tags: 1.0.2
ReleaseĀ 1.0.2.

Show diffs side-by-side

added added

removed removed

Lines of Context:
51
51
 
52
52
CREATE TABLE semester (
53
53
    semesterid  SERIAL PRIMARY KEY NOT NULL,
54
 
    year        CHAR(4) NOT NULL CHECK (valid_url_name(year)),
55
 
    semester    CHAR(1) NOT NULL CHECK (valid_url_name(semester)),
 
54
    year        TEXT NOT NULL CHECK (valid_url_name(year)),
 
55
    url_name    TEXT NOT NULL CHECK (valid_url_name(url_name)),
 
56
    code        TEXT NOT NULL,
 
57
    display_name TEXT NOT NULL,
56
58
    state       TEXT NOT NULL CHECK (state IN ('disabled', 'past',
57
59
                                    'current', 'future')) DEFAULT 'current',
58
 
    UNIQUE (year, semester)
 
60
    UNIQUE (year, url_name),
 
61
    UNIQUE (year, code)
59
62
);
60
63
 
61
64
CREATE TABLE offering (
64
67
    semesterid  INTEGER REFERENCES semester (semesterid) NOT NULL,
65
68
    description VARCHAR,
66
69
    url         VARCHAR,
 
70
    show_worksheet_marks BOOLEAN NOT NULL DEFAULT false,
 
71
    worksheet_cutoff TIMESTAMP,
67
72
    groups_student_permissions  VARCHAR NOT NULL DEFAULT 'none',
68
73
    CHECK (groups_student_permissions in ('none', 'invite', 'create')),
69
74
    UNIQUE (subject, semesterid)
181
186
        OR (loginid IS NULL AND groupid IS NOT NULL))
182
187
);
183
188
 
 
189
-- We must use conditional constraints here -- NULL != NULL.
 
190
CREATE UNIQUE INDEX assessed_loginid_key ON assessed(loginid, projectid) WHERE loginid IS NOT NULL;
 
191
CREATE UNIQUE INDEX assessed_groupid_key ON assessed(groupid, projectid) WHERE groupid IS NOT NULL;
 
192
 
184
193
CREATE TABLE project_extension (
185
194
    extensionid SERIAL PRIMARY KEY,
186
195
    assessedid  INT4 REFERENCES assessed (assessedid) NOT NULL,
187
 
    deadline    TIMESTAMP NOT NULL,
 
196
    days        INT NOT NULL,
188
197
    approver    INT4 REFERENCES login (loginid) NOT NULL,
189
198
    notes       VARCHAR
190
199
);
214
223
    identifier  TEXT PRIMARY KEY CHECK (valid_url_name(identifier)),
215
224
    name        TEXT,
216
225
    description TEXT,
 
226
    description_xhtml_cache TEXT,
217
227
    partial     TEXT,
218
228
    solution    TEXT,
219
229
    include     TEXT,
226
236
    identifier  TEXT NOT NULL CHECK (valid_url_name(identifier)),
227
237
    name        TEXT NOT NULL,
228
238
    data        TEXT NOT NULL,
 
239
    data_xhtml_cache TEXT,
229
240
    assessable  BOOLEAN NOT NULL,
 
241
    published   BOOLEAN NOT NULL DEFAULT true,
230
242
    seq_no      INT4 NOT NULL,
231
243
    format      TEXT NOT NUll,
232
244
    UNIQUE (offeringid, identifier)