Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 28 additions & 28 deletions database/schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -97,18 +97,18 @@ CREATE TABLE revisions (


-- 6. MATERIALS & SKILLS
CREATE TABLE materials (
id SERIAL PRIMARY KEY,
revision_id INTEGER NOT NULL
REFERENCES revisions(id) ON DELETE CASCADE,
type VARCHAR(50) NOT NULL, -- 'video','pdf','slide',...
file_url TEXT NOT NULL, -- S3/Cloud URL
uploaded_by INTEGER
REFERENCES users(id) ON DELETE SET NULL,
upload_date TIMESTAMPTZ NOT NULL DEFAULT now(),
due_date TIMESTAMPTZ,
status VARCHAR(50) NOT NULL DEFAULT 'active'
);
-- CREATE TABLE materials ( -- Not used
-- id SERIAL PRIMARY KEY,
-- revision_id INTEGER NOT NULL
-- REFERENCES revisions(id) ON DELETE CASCADE,
-- type VARCHAR(50) NOT NULL, -- 'video','pdf','slide',...
-- file_url TEXT NOT NULL, -- S3/Cloud URL
-- uploaded_by INTEGER
-- REFERENCES users(id) ON DELETE SET NULL,
-- upload_date TIMESTAMPTZ NOT NULL DEFAULT now(),
-- due_date TIMESTAMPTZ,
-- status VARCHAR(50) NOT NULL DEFAULT 'active'
-- );

CREATE TABLE skills (
id SERIAL PRIMARY KEY,
Expand All @@ -119,13 +119,13 @@ CREATE TABLE skills (
UNIQUE(name, organisation_id)
);

CREATE TABLE material_skills (
material_id INTEGER NOT NULL
REFERENCES materials(id) ON DELETE CASCADE,
skill_id INTEGER NOT NULL
REFERENCES skills(id) ON DELETE CASCADE,
PRIMARY KEY(material_id, skill_id)
);
-- CREATE TABLE material_skills ( -- Not used
-- material_id INTEGER NOT NULL
-- REFERENCES materials(id) ON DELETE CASCADE,
-- skill_id INTEGER NOT NULL
-- REFERENCES skills(id) ON DELETE CASCADE,
-- PRIMARY KEY(material_id, skill_id)
-- );


-- 7. QUIZZES, QUESTIONS, OPTIONS & RESPONSES
Expand Down Expand Up @@ -236,15 +236,15 @@ CREATE TABLE leaderboards (
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);

CREATE TABLE leaderboard_entries (
leaderboard_id INTEGER NOT NULL
REFERENCES leaderboards(id) ON DELETE CASCADE,
user_id INTEGER NOT NULL
REFERENCES users(id) ON DELETE CASCADE,
position INTEGER NOT NULL,
points INTEGER NOT NULL DEFAULT 0,
PRIMARY KEY(leaderboard_id, user_id)
);
-- CREATE TABLE leaderboard_entries ( -- Not used
-- leaderboard_id INTEGER NOT NULL
-- REFERENCES leaderboards(id) ON DELETE CASCADE,
-- user_id INTEGER NOT NULL
-- REFERENCES users(id) ON DELETE CASCADE,
-- position INTEGER NOT NULL,
-- points INTEGER NOT NULL DEFAULT 0,
-- PRIMARY KEY(leaderboard_id, user_id)
-- );


-- 11. ROADMAPS
Expand Down