By Jean Felix Nibishaka
The purpose of this database is to assist students in selecting courses that align with their future career aspirations. It helps students understand the possible careers for each course, the potential careers when combining courses, the duration required to complete their studies, the expected salary after graduation, and the challenges associated with each career.
- Students: Personal details and preferences.
- Courses: Details about each course, including duration and difficulty.
- Careers: Information on possible careers, required courses, duration, salary, and difficulty.
- Course Combinations: Possible course combinations and their respective careers.
- Institutional Data: Information about specific universities or colleges.
- Financial Data: Detailed financial aid information or tuition costs.
- Non-Academic Factors: Personal life factors that may influence career choices (e.g., location preferences).
- Search for courses based on career interests.
- View possible careers for individual courses and combinations of courses.
- See estimated duration, difficulty, and expected salary for each career.
- Get recommendations based on their preferences and academic background.
- Real-time interaction with academic advisors.
- Automatic enrollment in courses.
- Detailed personal financial planning.
- Student enrolls in Course.
- Course can lead to multiple Careers.
- Career requires one or more Courses.
- CourseCombination is a combination of Courses that can lead to a Career.
id
(Primary Key)name
(VARCHAR)email
(VARCHAR, Unique)preference
(TEXT)
id
(Primary Key)name
(VARCHAR)duration
(INT)difficulty
(ENUM('easy', 'medium', 'hard'))
id
(Primary Key)name
(VARCHAR)required_courses
(TEXT) (Comma-separated course IDs)duration
(INT)expected_salary
(DECIMAL)difficulty
(ENUM('easy', 'medium', 'hard'))
id
(Primary Key)course_ids
(TEXT) (Comma-separated course IDs)career_id
(Foreign Key referencing Career(id))
- VARCHAR: Chosen for text attributes to handle varying lengths of strings.
- INT: Chosen for numerical attributes for simplicity and range.
- DECIMAL: Used for salary to accommodate precision.
- ENUM: Used for difficulty to ensure data consistency.
- Index on
Student(email)
: To ensure unique email addresses and speed up searches by email. - Index on
Career(name)
: To quickly retrieve career details by name.
- View for Career Recommendations:
CREATE VIEW CareerRecommendations AS SELECT s.id AS student_id, c.name AS course_name, cr.name AS career_name, cr.expected_salary FROM Student s JOIN Course c ON s.preference LIKE CONCAT('%', c.name, '%') JOIN Career cr ON FIND_IN_SET(c.id, cr.required_courses);