doc-oc / database /schema.sql
Adityakeerti
added DB
cf8ece2
Raw History Blame Contribute Delete
8.49 kB
-- Database schema for marksheet storage
CREATE DATABASE IF NOT EXISTS DOC_OC;
USE DOC_OC;
-- Users table
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
current_semester INT DEFAULT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 10th marksheet table with subjects as JSON
CREATE TABLE marksheet_10th (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
board VARCHAR(50) NOT NULL,
student_name VARCHAR(100),
roll_number VARCHAR(50),
unique_id VARCHAR(50),
school_name VARCHAR(200),
school_code VARCHAR(20),
mother_name VARCHAR(100),
father_name VARCHAR(100),
-- Subject 1
subject1_code VARCHAR(20),
subject1_name VARCHAR(100),
subject1_theory_marks INT,
subject1_practical_marks INT,
subject1_internal_marks INT,
subject1_total_marks INT,
subject1_marks INT,
subject1_grade VARCHAR(10),
subject1_percentage DECIMAL(5,2),
-- Subject 2
subject2_code VARCHAR(20),
subject2_name VARCHAR(100),
subject2_theory_marks INT,
subject2_practical_marks INT,
subject2_internal_marks INT,
subject2_total_marks INT,
subject2_marks INT,
subject2_grade VARCHAR(10),
subject2_percentage DECIMAL(5,2),
-- Subject 3
subject3_code VARCHAR(20),
subject3_name VARCHAR(100),
subject3_theory_marks INT,
subject3_practical_marks INT,
subject3_internal_marks INT,
subject3_total_marks INT,
subject3_marks INT,
subject3_grade VARCHAR(10),
subject3_percentage DECIMAL(5,2),
-- Subject 4
subject4_code VARCHAR(20),
subject4_name VARCHAR(100),
subject4_theory_marks INT,
subject4_practical_marks INT,
subject4_internal_marks INT,
subject4_total_marks INT,
subject4_marks INT,
subject4_grade VARCHAR(10),
subject4_percentage DECIMAL(5,2),
-- Subject 5
subject5_code VARCHAR(20),
subject5_name VARCHAR(100),
subject5_theory_marks INT,
subject5_practical_marks INT,
subject5_internal_marks INT,
subject5_total_marks INT,
subject5_marks INT,
subject5_grade VARCHAR(10),
subject5_percentage DECIMAL(5,2),
-- Subject 6
subject6_code VARCHAR(20),
subject6_name VARCHAR(100),
subject6_theory_marks INT,
subject6_practical_marks INT,
subject6_internal_marks INT,
subject6_total_marks INT,
subject6_marks INT,
subject6_grade VARCHAR(10),
subject6_percentage DECIMAL(5,2),
uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE
);
-- 12th marksheet table with subjects
CREATE TABLE marksheet_12th (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
board VARCHAR(50) NOT NULL,
student_name VARCHAR(100),
roll_number VARCHAR(50),
unique_id VARCHAR(50),
school_name VARCHAR(200),
school_code VARCHAR(20),
mother_name VARCHAR(100),
father_name VARCHAR(100),
-- Subject 1
subject1_code VARCHAR(20),
subject1_name VARCHAR(100),
subject1_theory_marks INT,
subject1_practical_marks INT,
subject1_internal_marks INT,
subject1_total_marks INT,
subject1_marks INT,
subject1_grade VARCHAR(10),
subject1_percentage DECIMAL(5,2),
-- Subject 2
subject2_code VARCHAR(20),
subject2_name VARCHAR(100),
subject2_theory_marks INT,
subject2_practical_marks INT,
subject2_internal_marks INT,
subject2_total_marks INT,
subject2_marks INT,
subject2_grade VARCHAR(10),
subject2_percentage DECIMAL(5,2),
-- Subject 3
subject3_code VARCHAR(20),
subject3_name VARCHAR(100),
subject3_theory_marks INT,
subject3_practical_marks INT,
subject3_internal_marks INT,
subject3_total_marks INT,
subject3_marks INT,
subject3_grade VARCHAR(10),
subject3_percentage DECIMAL(5,2),
-- Subject 4
subject4_code VARCHAR(20),
subject4_name VARCHAR(100),
subject4_theory_marks INT,
subject4_practical_marks INT,
subject4_internal_marks INT,
subject4_total_marks INT,
subject4_marks INT,
subject4_grade VARCHAR(10),
subject4_percentage DECIMAL(5,2),
-- Subject 5
subject5_code VARCHAR(20),
subject5_name VARCHAR(100),
subject5_theory_marks INT,
subject5_practical_marks INT,
subject5_internal_marks INT,
subject5_total_marks INT,
subject5_marks INT,
subject5_grade VARCHAR(10),
subject5_percentage DECIMAL(5,2),
-- Subject 6
subject6_code VARCHAR(20),
subject6_name VARCHAR(100),
subject6_theory_marks INT,
subject6_practical_marks INT,
subject6_internal_marks INT,
subject6_total_marks INT,
subject6_marks INT,
subject6_grade VARCHAR(10),
subject6_percentage DECIMAL(5,2),
uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE
);
-- College marksheets table with subjects
CREATE TABLE college_marksheets (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
semester INT NOT NULL,
course VARCHAR(200),
session VARCHAR(20),
student_name VARCHAR(100),
roll_no VARCHAR(50),
enrollment_no VARCHAR(50),
father_name VARCHAR(100),
sgpa DECIMAL(4,2),
cgpa DECIMAL(4,2),
total_credits_registered INT,
total_credits_earned INT,
status VARCHAR(20),
-- Subject 1
subject1_code VARCHAR(20),
subject1_name VARCHAR(200),
subject1_credits INT,
subject1_internal_marks INT,
subject1_external_marks INT,
subject1_total_marks INT,
subject1_grade VARCHAR(10),
subject1_grade_point DECIMAL(3,2),
-- Subject 2
subject2_code VARCHAR(20),
subject2_name VARCHAR(200),
subject2_credits INT,
subject2_internal_marks INT,
subject2_external_marks INT,
subject2_total_marks INT,
subject2_grade VARCHAR(10),
subject2_grade_point DECIMAL(3,2),
-- Subject 3
subject3_code VARCHAR(20),
subject3_name VARCHAR(200),
subject3_credits INT,
subject3_internal_marks INT,
subject3_external_marks INT,
subject3_total_marks INT,
subject3_grade VARCHAR(10),
subject3_grade_point DECIMAL(3,2),
-- Subject 4
subject4_code VARCHAR(20),
subject4_name VARCHAR(200),
subject4_credits INT,
subject4_internal_marks INT,
subject4_external_marks INT,
subject4_total_marks INT,
subject4_grade VARCHAR(10),
subject4_grade_point DECIMAL(3,2),
-- Subject 5
subject5_code VARCHAR(20),
subject5_name VARCHAR(200),
subject5_credits INT,
subject5_internal_marks INT,
subject5_external_marks INT,
subject5_total_marks INT,
subject5_grade VARCHAR(10),
subject5_grade_point DECIMAL(3,2),
-- Subject 6
subject6_code VARCHAR(20),
subject6_name VARCHAR(200),
subject6_credits INT,
subject6_internal_marks INT,
subject6_external_marks INT,
subject6_total_marks INT,
subject6_grade VARCHAR(10),
subject6_grade_point DECIMAL(3,2),
-- Subject 7
subject7_code VARCHAR(20),
subject7_name VARCHAR(200),
subject7_credits INT,
subject7_internal_marks INT,
subject7_external_marks INT,
subject7_total_marks INT,
subject7_grade VARCHAR(10),
subject7_grade_point DECIMAL(3,2),
-- Subject 8
subject8_code VARCHAR(20),
subject8_name VARCHAR(200),
subject8_credits INT,
subject8_internal_marks INT,
subject8_external_marks INT,
subject8_total_marks INT,
subject8_grade VARCHAR(10),
subject8_grade_point DECIMAL(3,2),
-- Subject 9
subject9_code VARCHAR(20),
subject9_name VARCHAR(200),
subject9_credits INT,
subject9_internal_marks INT,
subject9_external_marks INT,
subject9_total_marks INT,
subject9_grade VARCHAR(10),
subject9_grade_point DECIMAL(3,2),
-- Subject 10
subject10_code VARCHAR(20),
subject10_name VARCHAR(200),
subject10_credits INT,
subject10_internal_marks INT,
subject10_external_marks INT,
subject10_total_marks INT,
subject10_grade VARCHAR(10),
subject10_grade_point DECIMAL(3,2),
uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE,
UNIQUE KEY unique_user_semester (user_id, semester)
);