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

« back to all changes in this revision

Viewing changes to userdb/users.sql

  • Committer: William Grant
  • Date: 2010-02-24 09:51:04 UTC
  • Revision ID: grantw@unimelb.edu.au-20100224095104-nl3ndy0cysz2ioad
Add support for "really deep" (more than two segment) views.

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