60 lines
2.5 KiB
SQL
60 lines
2.5 KiB
SQL
-- Monetization & Content Strategy
|
|
ALTER TABLE `courses`
|
|
ADD COLUMN `tier` ENUM('free', 'premium') NOT NULL DEFAULT 'free' AFTER `description`,
|
|
ADD COLUMN `price` DECIMAL(10, 2) DEFAULT NULL AFTER `tier`,
|
|
ADD COLUMN `type` ENUM('course', 'micro-lesson') NOT NULL DEFAULT 'course' AFTER `price`;
|
|
|
|
-- Scalability & Compliance
|
|
ALTER TABLE `users`
|
|
ADD COLUMN `language` VARCHAR(5) NOT NULL DEFAULT 'en' AFTER `email`,
|
|
ADD COLUMN `parental_controls_enabled` BOOLEAN NOT NULL DEFAULT FALSE AFTER `language`;
|
|
|
|
-- Community & Engagement: Gamification
|
|
CREATE TABLE IF NOT EXISTS `badges` (
|
|
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
|
`name` VARCHAR(255) NOT NULL,
|
|
`description` TEXT,
|
|
`icon` VARCHAR(255) -- e.g., path to an image or a font-awesome class
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `user_badges` (
|
|
`user_id` INT NOT NULL,
|
|
`badge_id` INT NOT NULL,
|
|
`awarded_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`user_id`, `badge_id`),
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,
|
|
FOREIGN KEY (`badge_id`) REFERENCES `badges`(`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Community & Engagement: Discussion Boards
|
|
CREATE TABLE IF NOT EXISTS `discussion_forums` (
|
|
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
|
`course_id` INT DEFAULT NULL, -- Can be null for general forums
|
|
`title` VARCHAR(255) NOT NULL,
|
|
`description` TEXT,
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (`course_id`) REFERENCES `courses`(`id`) ON DELETE SET NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `discussion_threads` (
|
|
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
|
`forum_id` INT NOT NULL,
|
|
`user_id` INT NOT NULL,
|
|
`title` VARCHAR(255) NOT NULL,
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (`forum_id`) REFERENCES `discussion_forums`(`id`) ON DELETE CASCADE,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `discussion_posts` (
|
|
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
|
`thread_id` INT NOT NULL,
|
|
`user_id` INT NOT NULL,
|
|
`parent_post_id` INT DEFAULT NULL, -- For replies
|
|
`content` TEXT NOT NULL,
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (`thread_id`) REFERENCES `discussion_threads`(`id`) ON DELETE CASCADE,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,
|
|
FOREIGN KEY (`parent_post_id`) REFERENCES `discussion_posts`(`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|