-- 1. Fix Redundant Indexes
ALTER TABLE `admins` DROP INDEX `idx_id`;
ALTER TABLE `courses` DROP INDEX `id`;
ALTER TABLE `modules` DROP INDEX `id`;
ALTER TABLE `topics` DROP INDEX `id`;
ALTER TABLE `universities` DROP INDEX `id`;

-- 2. Fix Data Type Mismatches (Int to BigInt Unsigned)
ALTER TABLE `allocatecodings`
  MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT;
ALTER TABLE `codingreports`
  MODIFY `uname` bigint(20) unsigned NOT NULL,
  MODIFY `student_id` bigint(20) unsigned DEFAULT NULL,
  MODIFY `cname` bigint(20) unsigned NOT NULL,
  MODIFY `dept` bigint(20) unsigned DEFAULT NULL,
  MODIFY `batch` bigint(20) unsigned DEFAULT NULL,
  MODIFY `subname` bigint(20) unsigned DEFAULT NULL,
  MODIFY `unitname` bigint(20) unsigned DEFAULT NULL,
  MODIFY `topic` bigint(20) unsigned DEFAULT NULL;
ALTER TABLE `materials`
  MODIFY `uname` bigint(20) unsigned NOT NULL,
  MODIFY `cname` bigint(20) unsigned NOT NULL,
  MODIFY `dept` bigint(20) unsigned NOT NULL,
  MODIFY `batch` bigint(20) unsigned NOT NULL,
  MODIFY `staff` bigint(20) unsigned NOT NULL,
  MODIFY `coursename` bigint(20) unsigned NOT NULL,
  MODIFY `module` bigint(20) unsigned NOT NULL;
ALTER TABLE `leaverequests`
  MODIFY `uname` bigint(20) unsigned NOT NULL,
  MODIFY `cname` bigint(20) unsigned NOT NULL,
  MODIFY `dept` bigint(20) unsigned NOT NULL,
  MODIFY `batch` bigint(20) unsigned NOT NULL,
  MODIFY `student` bigint(20) unsigned NOT NULL,
  MODIFY `approved_by` bigint(20) unsigned DEFAULT NULL;
ALTER TABLE `staff_feedbacks`
  MODIFY `uname` bigint(20) unsigned NOT NULL,
  MODIFY `cname` bigint(20) unsigned NOT NULL,
  MODIFY `dept` bigint(20) unsigned NOT NULL,
  MODIFY `batch` bigint(20) unsigned NOT NULL,
  MODIFY `student_id` bigint(20) unsigned NOT NULL,
  MODIFY `staff_dept` bigint(20) unsigned NOT NULL,
  MODIFY `staff_id` bigint(20) unsigned NOT NULL;
ALTER TABLE `mcqreports`
  MODIFY `uname` bigint(20) unsigned DEFAULT NULL,
  MODIFY `cname` bigint(20) unsigned DEFAULT NULL,
  MODIFY `dept` bigint(20) unsigned DEFAULT NULL,
  MODIFY `batch` bigint(20) unsigned DEFAULT NULL,
  MODIFY `questionid` bigint(20) unsigned DEFAULT NULL;

-- 3. Add Missing Indexes
ALTER TABLE `students` ADD INDEX `idx_session_token` (`session_token`), ADD INDEX `idx_last_login` (`last_login_at`);
ALTER TABLE `admins` ADD INDEX `idx_session_token` (`session_token`);
ALTER TABLE `staffs` ADD INDEX `idx_session_token` (`session_token`);
ALTER TABLE `codingreports` ADD INDEX `idx_student_id` (`student_id`), ADD INDEX `idx_questionid` (`questionid`), ADD INDEX `idx_solved_date` (`solved_date`);
ALTER TABLE `assessment_submissions` ADD INDEX `idx_created_at` (`created_at`);
ALTER TABLE `attendances` ADD INDEX `idx_student_course` (`student_id`, `course_id`);

-- 4. Add Missing Foreign Key Constraints
ALTER TABLE `allocatecodings_expanded`
  ADD CONSTRAINT `fk_allocatecodings_expanded_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatecodings_expanded_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatecodings_expanded_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatecodings_expanded_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatecodings_expanded_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatecodings_expanded_module` FOREIGN KEY (`module`) REFERENCES `modules` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatecodings_expanded_topic` FOREIGN KEY (`topic`) REFERENCES `topics` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatecodings_expanded_questionid` FOREIGN KEY (`questionid`) REFERENCES `codings` (`id`) ON DELETE CASCADE;
ALTER TABLE `allocatecourses_expanded`
  ADD CONSTRAINT `fk_allocatecourses_expanded_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatecourses_expanded_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatecourses_expanded_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatecourses_expanded_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatecourses_expanded_courseid` FOREIGN KEY (`courseid`) REFERENCES `courses` (`id`) ON DELETE CASCADE;
ALTER TABLE `allocatemcqs_expanded`
  ADD CONSTRAINT `fk_allocatemcqs_expanded_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatemcqs_expanded_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatemcqs_expanded_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatemcqs_expanded_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatemcqs_expanded_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatemcqs_expanded_module` FOREIGN KEY (`module`) REFERENCES `modules` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatemcqs_expanded_topic` FOREIGN KEY (`topic`) REFERENCES `topics` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_allocatemcqs_expanded_questionid` FOREIGN KEY (`questionid`) REFERENCES `mcqs` (`id`) ON DELETE CASCADE;
ALTER TABLE `assessment_submissions`
  ADD CONSTRAINT `fk_assessment_submissions_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_assessment_submissions_question_id` FOREIGN KEY (`question_id`) REFERENCES `codings` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_assessment_submissions_assessment_id` FOREIGN KEY (`assessment_id`) REFERENCES `codingassessments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_assessment_submissions_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_assessment_submissions_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_assessment_submissions_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_assessment_submissions_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_assessment_submissions_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_assessment_submissions_module` FOREIGN KEY (`module`) REFERENCES `modules` (`id`) ON DELETE CASCADE;
ALTER TABLE `attendance_course_summary`
  ADD CONSTRAINT `fk_attendance_course_summary_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_attendance_course_summary_course_id` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE;
ALTER TABLE `attendances`
  ADD CONSTRAINT `fk_attendances_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_attendances_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_attendances_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_attendances_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_attendances_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_attendances_course_id` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE;
ALTER TABLE `codingassessment_questions_expanded`
  ADD CONSTRAINT `fk_codingassessment_questions_expanded_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessment_questions_expanded_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessment_questions_expanded_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessment_questions_expanded_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessment_questions_expanded_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessment_questions_expanded_module` FOREIGN KEY (`module`) REFERENCES `modules` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessment_questions_expanded_questionid` FOREIGN KEY (`questionid`) REFERENCES `codings` (`id`) ON DELETE CASCADE;
ALTER TABLE `codingassessmentreport`
  ADD CONSTRAINT `fk_codingassessmentreport_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessmentreport_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessmentreport_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessmentreport_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessmentreport_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessmentreport_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessmentreport_module` FOREIGN KEY (`module`) REFERENCES `modules` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessmentreport_assid` FOREIGN KEY (`assid`) REFERENCES `codingassessments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingassessmentreport_questionid` FOREIGN KEY (`questionid`) REFERENCES `codings` (`id`) ON DELETE CASCADE;
ALTER TABLE `codingreports`
  ADD CONSTRAINT `fk_codingreports_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingreports_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingreports_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingreports_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingreports_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingreports_topic` FOREIGN KEY (`topic`) REFERENCES `topics` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_codingreports_questionid` FOREIGN KEY (`questionid`) REFERENCES `codings` (`id`) ON DELETE CASCADE;
ALTER TABLE `colleges`
  ADD CONSTRAINT `fk_colleges_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE;
ALTER TABLE `course_allocation_counts`
  ADD CONSTRAINT `fk_course_allocation_counts_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_course_allocation_counts_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_course_allocation_counts_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_course_allocation_counts_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_course_allocation_counts_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE;
ALTER TABLE `doubtclearance`
  ADD CONSTRAINT `fk_doubtclearance_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_doubtclearance_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_doubtclearance_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_doubtclearance_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_doubtclearance_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_doubtclearance_staff_id` FOREIGN KEY (`staff_id`) REFERENCES `staffs` (`id`) ON DELETE CASCADE;
ALTER TABLE `eiq`
  ADD CONSTRAINT `fk_eiq_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_eiq_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_eiq_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_eiq_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_eiq_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE;
ALTER TABLE `leaverequests`
  ADD CONSTRAINT `fk_leaverequests_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_leaverequests_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_leaverequests_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_leaverequests_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_leaverequests_student` FOREIGN KEY (`student`) REFERENCES `students` (`id`) ON DELETE CASCADE;
ALTER TABLE `materials`
  ADD CONSTRAINT `fk_materials_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_materials_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_materials_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_materials_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_materials_staff` FOREIGN KEY (`staff`) REFERENCES `staffs` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_materials_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_materials_module` FOREIGN KEY (`module`) REFERENCES `modules` (`id`) ON DELETE CASCADE;
ALTER TABLE `mcq_assessment_questions`
  ADD CONSTRAINT `fk_mcq_assessment_questions_assid` FOREIGN KEY (`assid`) REFERENCES `mcqassessments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcq_assessment_questions_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcq_assessment_questions_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcq_assessment_questions_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcq_assessment_questions_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcq_assessment_questions_question_id` FOREIGN KEY (`question_id`) REFERENCES `mcqs` (`id`) ON DELETE CASCADE;
ALTER TABLE `mcqassessmentreport`
  ADD CONSTRAINT `fk_mcqassessmentreport_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessmentreport_assid` FOREIGN KEY (`assid`) REFERENCES `mcqassessments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessmentreport_questionid` FOREIGN KEY (`questionid`) REFERENCES `mcqs` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessmentreport_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessmentreport_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessmentreport_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessmentreport_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessmentreport_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessmentreport_module` FOREIGN KEY (`module`) REFERENCES `modules` (`id`) ON DELETE CASCADE;
ALTER TABLE `mcqassessments`
  ADD CONSTRAINT `fk_mcqassessments_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessments_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessments_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessments_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessments_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqassessments_module` FOREIGN KEY (`module`) REFERENCES `modules` (`id`) ON DELETE CASCADE;
ALTER TABLE `mcqreports`
  ADD CONSTRAINT `fk_mcqreports_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqreports_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqreports_module` FOREIGN KEY (`module`) REFERENCES `modules` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_mcqreports_topic` FOREIGN KEY (`topic`) REFERENCES `topics` (`id`) ON DELETE CASCADE;
ALTER TABLE `meets`
  ADD CONSTRAINT `fk_meets_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_meets_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_meets_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_meets_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_meets_staff_id` FOREIGN KEY (`staff_id`) REFERENCES `staffs` (`id`) ON DELETE CASCADE;
ALTER TABLE `migrations`
  ADD CONSTRAINT `fk_migrations_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE;
ALTER TABLE `module_allocation_counts`
  ADD CONSTRAINT `fk_module_allocation_counts_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_module_allocation_counts_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_module_allocation_counts_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_module_allocation_counts_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_module_allocation_counts_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_module_allocation_counts_module` FOREIGN KEY (`module`) REFERENCES `modules` (`id`) ON DELETE CASCADE;
ALTER TABLE `notification_reads`
  ADD CONSTRAINT `fk_notification_reads_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_notification_reads_notification_id` FOREIGN KEY (`notification_id`) REFERENCES `notifications` (`id`) ON DELETE CASCADE;
ALTER TABLE `notifications`
  ADD CONSTRAINT `fk_notifications_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_notifications_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_notifications_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_notifications_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE;
ALTER TABLE `pqps`
  ADD CONSTRAINT `fk_pqps_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_pqps_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_pqps_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_pqps_staff` FOREIGN KEY (`staff`) REFERENCES `staffs` (`id`) ON DELETE CASCADE;
ALTER TABLE `staff_feedbacks`
  ADD CONSTRAINT `fk_staff_feedbacks_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_staff_feedbacks_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_staff_feedbacks_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_staff_feedbacks_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_staff_feedbacks_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_staff_feedbacks_staff_id` FOREIGN KEY (`staff_id`) REFERENCES `staffs` (`id`) ON DELETE CASCADE;
ALTER TABLE `start_mcq_ass`
  ADD CONSTRAINT `fk_start_mcq_ass_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_start_mcq_ass_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_start_mcq_ass_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_start_mcq_ass_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_start_mcq_ass_assid` FOREIGN KEY (`assid`) REFERENCES `mcqassessments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_start_mcq_ass_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE;
ALTER TABLE `student_course_progress`
  ADD CONSTRAINT `fk_student_course_progress_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_student_course_progress_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE;
ALTER TABLE `student_module_progress`
  ADD CONSTRAINT `fk_student_module_progress_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_student_module_progress_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_student_module_progress_module` FOREIGN KEY (`module`) REFERENCES `modules` (`id`) ON DELETE CASCADE;
ALTER TABLE `topic_allocation_counts`
  ADD CONSTRAINT `fk_topic_allocation_counts_uname` FOREIGN KEY (`uname`) REFERENCES `universities` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_topic_allocation_counts_cname` FOREIGN KEY (`cname`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_topic_allocation_counts_dept` FOREIGN KEY (`dept`) REFERENCES `departments` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_topic_allocation_counts_batch` FOREIGN KEY (`batch`) REFERENCES `batches` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_topic_allocation_counts_coursename` FOREIGN KEY (`coursename`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_topic_allocation_counts_module` FOREIGN KEY (`module`) REFERENCES `modules` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_topic_allocation_counts_topic` FOREIGN KEY (`topic`) REFERENCES `topics` (`id`) ON DELETE CASCADE;
