24 lines
913 B
SQL
24 lines
913 B
SQL
CREATE TABLE networker_worlds (
|
|
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|
slug VARCHAR(150) NOT NULL UNIQUE,
|
|
title VARCHAR(200) NOT NULL,
|
|
description VARCHAR(1200),
|
|
difficulty VARCHAR(30) NOT NULL DEFAULT 'junior',
|
|
exam_scope VARCHAR(20) NOT NULL DEFAULT 'AP1',
|
|
sort_order INT NOT NULL DEFAULT 0,
|
|
active BOOLEAN NOT NULL DEFAULT TRUE,
|
|
CONSTRAINT chk_networker_exam_scope CHECK (exam_scope IN ('AP1','AP2_FIAE','AP2_FISI','CROSS'))
|
|
);
|
|
|
|
CREATE TABLE networker_levels (
|
|
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|
world_id BIGINT NOT NULL REFERENCES networker_worlds(id) ON DELETE CASCADE,
|
|
title VARCHAR(200) NOT NULL,
|
|
level_type VARCHAR(30) NOT NULL,
|
|
points INT NOT NULL DEFAULT 100,
|
|
sort_order INT NOT NULL DEFAULT 0,
|
|
payload VARCHAR(8000) NOT NULL
|
|
);
|
|
|
|
CREATE INDEX idx_networker_levels_world ON networker_levels(world_id);
|