Files
homework/skonev/postgresql/create_tables.sql
T
2025-12-17 13:29:08 +03:00

45 lines
994 B
PL/PgSQL

BEGIN;
CREATE TABLE SKONEV.users(
id INT PRIMARY KEY,
name VARCHAR(100),
age INT,
email VARCHAR(255) UNIQUE,
registration_date DATE NOT NULL
);
CREATE TABLE SKONEV.courses(
id INT PRIMARY KEY,
title TEXT NOT NULL,
category VARCHAR(255) CHECK (category IN ('data', 'programming', 'business')),
created_at DATE NOT NULL
);
CREATE TABLE SKONEV.lessons(
id INT PRIMARY KEY,
course_id INT NOT NULL,
FOREIGN KEY (course_id) REFERENCES courses(id),
title TEXT NOT NULL,
duration_min INT NOT NULL
);
CREATE TABLE SKONEV.enrollments(
id INT PRIMARY KEY,
user_id INT NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id),
course_id INT NOT NULL,
FOREIGN KEY (course_id) REFERENCES courses(id),
enrolled_at DATE NOT NULL
);
CREATE TABLE SKONEV.lesson_views(
id INT PRIMARY KEY,
user_id INT NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id),
lesson_id INT NOT NULL,
FOREIGN KEY (lesson_id) REFERENCES lessons(id),
viewed_at TIMESTAMP NOT NULL
);
COMMIT;