DDL schemas for Trading Platform: - User management - Authentication - Payments - Education - ML predictions - Trading data Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
49 lines
2.0 KiB
SQL
49 lines
2.0 KiB
SQL
-- =====================================================
|
|
-- TABLE: education.course_reviews
|
|
-- =====================================================
|
|
-- Proyecto: OrbiQuant IA (Trading Platform)
|
|
-- Módulo: OQI-002 - Education
|
|
-- Especificación: Tabla adicional para reviews de cursos
|
|
-- =====================================================
|
|
|
|
CREATE TABLE education.course_reviews (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
|
|
user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE,
|
|
course_id UUID NOT NULL REFERENCES education.courses(id) ON DELETE CASCADE,
|
|
enrollment_id UUID NOT NULL REFERENCES education.enrollments(id) ON DELETE CASCADE,
|
|
|
|
-- Review
|
|
rating INTEGER NOT NULL CHECK (rating >= 1 AND rating <= 5),
|
|
title VARCHAR(200),
|
|
content TEXT,
|
|
|
|
-- Moderación
|
|
is_approved BOOLEAN DEFAULT false,
|
|
is_featured BOOLEAN DEFAULT false,
|
|
approved_by UUID REFERENCES auth.users(id),
|
|
approved_at TIMESTAMPTZ,
|
|
|
|
-- Votos útiles
|
|
helpful_votes INTEGER DEFAULT 0,
|
|
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
|
|
CONSTRAINT unique_user_course_review UNIQUE(user_id, course_id)
|
|
);
|
|
|
|
-- Índices
|
|
CREATE INDEX idx_reviews_course ON education.course_reviews(course_id);
|
|
CREATE INDEX idx_reviews_user ON education.course_reviews(user_id);
|
|
CREATE INDEX idx_reviews_rating ON education.course_reviews(rating);
|
|
CREATE INDEX idx_reviews_approved ON education.course_reviews(is_approved) WHERE is_approved = true;
|
|
CREATE INDEX idx_reviews_featured ON education.course_reviews(is_featured) WHERE is_featured = true;
|
|
CREATE INDEX idx_reviews_helpful ON education.course_reviews(helpful_votes DESC);
|
|
|
|
-- Comentarios
|
|
COMMENT ON TABLE education.course_reviews IS 'Reviews y calificaciones de cursos por usuarios';
|
|
COMMENT ON COLUMN education.course_reviews.is_approved IS 'Review aprobada por moderador';
|
|
COMMENT ON COLUMN education.course_reviews.is_featured IS 'Review destacada para mostrar en página del curso';
|
|
COMMENT ON COLUMN education.course_reviews.helpful_votes IS 'Número de votos útiles de otros usuarios';
|