36908-vm/db/migrations/001_initial_schema.sql
2025-12-13 11:06:47 +00:00

46 lines
1.8 KiB
SQL

CREATE TABLE IF NOT EXISTS `users` (
`id` varchar(36) NOT NULL,
`email` varchar(255) NOT NULL,
`password_hash` varchar(255) NOT NULL,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `materials` (
`id` varchar(36) NOT NULL,
`user_id` varchar(36) NOT NULL,
`file_path` varchar(255) NOT NULL,
`upload_type` enum('pdf','pptx','image') NOT NULL,
`extracted_text` text,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
CONSTRAINT `materials_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `study_plans` (
`id` varchar(36) NOT NULL,
`user_id` varchar(36) NOT NULL,
`material_id` varchar(36) NOT NULL,
`test_date` date NOT NULL,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `material_id` (`material_id`),
CONSTRAINT `study_plans_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
CONSTRAINT `study_plans_ibfk_2` FOREIGN KEY (`material_id`) REFERENCES `materials` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `plan_items` (
`id` varchar(36) NOT NULL,
`plan_id` varchar(36) NOT NULL,
`day_number` int(11) NOT NULL,
`task_text` text NOT NULL,
`is_done` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `plan_id` (`plan_id`),
CONSTRAINT `plan_items_ibfk_1` FOREIGN KEY (`plan_id`) REFERENCES `study_plans` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;