Student Information System ER diagram and database schema
The Student Information System database schema is a DB Planner template with 28 tables, 175 columns and 46 relationships, free to use. Core tables include account_charges, account_payments, advisor_assignments, assessment_scores. It can be opened as an interactive ER diagram or exported as PostgreSQL, MySQL, or SQL Server DDL.
- Tables
- 28
- Columns
- 175
- Relationships
- 46
- Category
- Education
- Exports
- DBML, SQL, C#
- Price
- Free
What this schema models
A complete student information system (SIS) database design for a college or university: 28 tables, 18 enums and 46 relationships covering terms and rooms, degree programs and the course catalog, sections and meeting times, registration with waitlists, the gradebook and final grades, attendance, degrees, advising, registration holds, and student accounts with financial aid. THE FOUR DESIGN RULES 1. A COURSE is not a SECTION. courses is the catalog entry (what CS 101 is); sections are one run of it in one term, with their own instructors, rooms and capacity. Students enroll in sections. 2. Enrollment is a status, not a delete. Dropping or withdrawing changes the row's status; the row stays, which is what puts a W on the transcript. 3. Final grades are append-only. A grade change is a new row that supersedes the old one, with who changed it and why. GPA is computed from the latest grade per enrollment, never stored. 4. Requirements follow the catalog year. A student's program is pinned to the term they declared it, and degree requirements are versioned, so a curriculum change never moves the goalposts for students already in it. DETAILS WORTH STEALING - Term deadlines (add/drop, withdrawal) live on the term row, so enrollment rules read data rather than hard-coded dates. - The grading scale is a table, so pass/fail, incompletes and GPA policy are configuration. - Prerequisites carry a minimum grade and a corequisite flag. - Holds say exactly what they block, registration or transcripts, and are released rather than deleted. - Student accounts are a ledger of charges, payments and disbursed aid; the balance is a sum, not a column. - Preferred name is shown in class rosters, while the legal name stays on official documents. WHAT YOU GET Clean DBML that imports directly into DB Planner, and a laid-out board with zones color-coded and framed: institution, course catalog, scheduling and faculty, enrollment and gradebook, grades and degrees, students, and student accounts. Every table carries a note. Postgres-flavoured types that port cleanly to MySQL or SQL Server. Useful for developers building an SIS, LMS or registration system, and for students who need a realistic student management system ER diagram for a DBMS project. This is a schema design reference; validate it against your institution's policies and privacy obligations (such as FERPA) before production use.
Tables (28)
| Table | Columns |
|---|---|
| account_charges | 8 |
| account_payments | 6 |
| advisor_assignments | 5 |
| assessment_scores | 5 |
| assessments | 6 |
| attendance_records | 4 |
| buildings | 3 |
| course_prerequisites | 4 |
| courses | 8 |
| degree_conferrals | 5 |
| departments | 3 |
| emergency_contacts | 6 |
| enrollments | 9 |
| final_grades | 7 |
| financial_aid_awards | 8 |
| grade_points | 4 |
| instructors | 8 |
| program_requirements | 7 |
| programs | 7 |
| rooms | 5 |
| section_instructors | 3 |
| section_meetings | 6 |
| sections | 8 |
| staff_users | 4 |
| student_holds | 9 |
| student_programs | 7 |
| students | 11 |
| terms | 9 |
Relationships (46)
account_charges.posted_by references staff_users.idmany to oneaccount_charges.student_id references students.idmany to oneaccount_charges.term_id references terms.idmany to oneaccount_payments.student_id references students.idmany to oneadvisor_assignments.instructor_id references instructors.idmany to oneadvisor_assignments.student_id references students.idmany to oneassessment_scores.assessment_id references assessments.idmany to oneassessment_scores.enrollment_id references enrollments.idmany to oneassessments.section_id references sections.idmany to oneattendance_records.enrollment_id references enrollments.idmany to oneattendance_records.recorded_by references instructors.idmany to onecourse_prerequisites.course_id references courses.idmany to onecourse_prerequisites.minimum_grade references grade_points.codemany to onecourse_prerequisites.required_course_id references courses.idmany to onecourses.department_id references departments.idmany to onedegree_conferrals.student_program_id references student_programs.idmany to onedegree_conferrals.term_id references terms.idmany to oneemergency_contacts.student_id references students.idmany to oneenrollments.section_id references sections.idmany to oneenrollments.student_id references students.idmany to onefinal_grades.enrollment_id references enrollments.idmany to onefinal_grades.grade_code references grade_points.codemany to onefinal_grades.posted_by references instructors.idmany to onefinal_grades.supersedes_id references final_grades.idmany to onefinancial_aid_awards.student_id references students.idmany to onefinancial_aid_awards.term_id references terms.idmany to oneinstructors.department_id references departments.idmany to oneprogram_requirements.course_id references courses.idmany to oneprogram_requirements.effective_term_id references terms.idmany to oneprogram_requirements.program_id references programs.idmany to oneprogram_requirements.retired_term_id references terms.idmany to oneprograms.department_id references departments.idmany to onerooms.building_id references buildings.idmany to onesection_instructors.instructor_id references instructors.idmany to onesection_instructors.section_id references sections.idmany to onesection_meetings.room_id references rooms.idmany to onesection_meetings.section_id references sections.idmany to onesections.course_id references courses.idmany to onesections.term_id references terms.idmany to onestudent_holds.placed_by references staff_users.idmany to onestudent_holds.released_by references staff_users.idmany to onestudent_holds.student_id references students.idmany to onestudent_programs.catalog_term_id references terms.idmany to onestudent_programs.program_id references programs.idmany to onestudent_programs.student_id references students.idmany to onestudents.admitted_term_id references terms.idmany to one
How to use this template
- Open the ER diagram to see the tables and how they relate.
- Copy it into your workspace. You get your own editable copy, in DBML.
- Export it as PostgreSQL, MySQL, or SQL Server DDL, or as C# models.
The copy opens in DB Planner’s ER diagram tool, with the schema as text in the DBML editor beside it. Have a database already? Turn its SQL into an ER diagram instead.
Frequently asked questions
- What is in the Student Information System database schema?
- 28 tables and 46 relationships, across 175 columns. The table names and the full relationship list are shown on this page.
- Can I export it to PostgreSQL or MySQL?
- Yes. Every DB Planner template exports as DBML, as PostgreSQL, MySQL, or SQL Server DDL, and as C# models.
- Is this template free?
- Yes. You can open it in the browser without an account, and copy it into your own workspace with a free DB Planner account.
- Can I change it after copying it?
- Yes. A copy is yours: you can rename tables, add columns, and export it. Changes the author makes later do not affect your copy.