-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschema.sql
42 lines (37 loc) · 968 Bytes
/
schema.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
DROP TABLE IF EXISTS testCases;
DROP TABLE IF EXISTS functions;
DROP TABLE IF EXISTS assignments;
DROP TABLE IF EXISTS courses;
DROP TABLE IF EXISTS users;
CREATE TABLE IF NOT EXISTS users(
id SERIAL PRIMARY KEY,
email TEXT NOT NULL,
password TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS courses(
id SERIAL PRIMARY KEY,
userId INT NOT NULL REFERENCES users(id),
code TEXT,
name TEXT,
term TEXT
);
CREATE TABLE IF NOT EXISTS assignments(
id SERIAL PRIMARY KEY,
courseId INT NOT NULL REFERENCES courses(id),
name TEXT,
maxPoints INT
);
CREATE TABLE IF NOT EXISTS functions(
id SERIAL PRIMARY KEY,
assignemntId INT NOT NULL REFERENCES assignments(id),
description TEXT,
instructions TEXT
);
CREATE TABLE IF NOT EXISTS testCases(
id SERIAL PRIMARY KEY,
functionId INT NOT NULL REFERENCES functions(id),
userId INT NOT NULL REFERENCES users(id),
args TEXT,
attempts INT NOT NULL DEFAULT 0,
failures INT NOT NULL DEFAULT 0
);