Files
homework/APolikanov/2 - GreenPlum-Pet-project/3 DDL_CREATE_CORE.sql
T
2025-12-07 17:01:30 +04:00

51 lines
1.2 KiB
SQL

-- Измерение пользователей
CREATE TABLE core.dim_user (
user_id INT PRIMARY KEY,
name TEXT,
age INT,
email TEXT,
registration_date DATE
)
DISTRIBUTED BY (user_id);
-- Измерение курсов
CREATE TABLE core.dim_course (
course_id INT PRIMARY KEY,
title TEXT,
category TEXT
)
DISTRIBUTED BY (course_id);
-- Измерение уроков
CREATE TABLE core.dim_lesson (
lesson_id INT PRIMARY KEY,
title TEXT,
duration_min INT,
course_id INT REFERENCES core.dim_course(course_id)
)
DISTRIBUTED BY (lesson_id);
-- Опционально: измерение времени
CREATE TABLE core.dim_date (
date DATE PRIMARY KEY,
year INT,
month INT,
day INT,
weekday TEXT
)
DISTRIBUTED BY (date);
CREATE TABLE core.fact_lesson_views (
user_id INT REFERENCES core.dim_user(user_id),
lesson_id INT REFERENCES core.dim_lesson(lesson_id),
course_id INT REFERENCES core.dim_course(course_id),
viewed_at TIMESTAMP
)
DISTRIBUTED BY (user_id);
CREATE TABLE core.enrollments (
user_id INT REFERENCES core.dim_user(user_id),
course_id INT REFERENCES core.dim_course(course_id),
enrolled_at TIMESTAMP
)
DISTRIBUTED BY (user_id);