-- 1. Создание таблицы категорий (categories)
CREATE TABLE categories (
id INT PRIMARY KEY, -- В реальной БД лучше использовать SERIAL или AUTO_INCREMENT
title VARCHAR(255) NOT NULL,
icon VARCHAR(255)
);
-- 2. Создание таблицы курсов (courses)
CREATE TABLE courses (
id INT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
current_discount DECIMAL(10, 2) DEFAULT 0,
is_available BOOLEAN DEFAULT TRUE,
category_id INT,
CONSTRAINT fk_courses_category FOREIGN KEY (category_id) REFERENCES categories(id)
);
-- 3. Создание таблицы пользователей (users)
CREATE TABLE users (
id INT PRIMARY KEY,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
is_admin BOOLEAN DEFAULT FALSE,
is_premium BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 4. Создание таблицы чеков (receipts)
CREATE TABLE receipts (
id INT PRIMARY KEY,
receipt_url TEXT
);
-- 5. Создание таблицы связи пользователей и курсов (user_courses)
CREATE TABLE user_courses (
user_id INT,
course_id INT,
receipt_id INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (user_id, course_id), -- Составной первичный ключ
CONSTRAINT fk_uc_user FOREIGN KEY (user_id) REFERENCES users(id),
CONSTRAINT fk_uc_course FOREIGN KEY (course_id) REFERENCES courses(id),
CONSTRAINT fk_uc_receipt FOREIGN KEY (receipt_id) REFERENCES receipts(id)
);