46 lines
1.8 KiB
SQL
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;
|