School / LMS Schema
A school / LMS schema — students and teachers, courses and their enrollments, assignments and grades — shown as an interactive ER diagram.
Open this schema in the editor → All examplesInteractive diagram
Drag to pan, scroll to zoom. Open it in the full editor to edit, rearrange and export.
About this schema
Teachers teach courses; students enroll in courses through an enrollment join table; each course has assignments, and each enrolled student receives grades on those assignments.
Schema (SQL)
CREATE TABLE teachers ( id SERIAL PRIMARY KEY, name VARCHAR(160) NOT NULL, email VARCHAR(255) UNIQUE ); CREATE TABLE students ( id SERIAL PRIMARY KEY, name VARCHAR(160) NOT NULL, email VARCHAR(255) UNIQUE, enrolled_on DATE ); CREATE TABLE courses ( id SERIAL PRIMARY KEY, code VARCHAR(16) UNIQUE, title VARCHAR(200), teacher_id INT REFERENCES teachers(id) ); CREATE TABLE enrollments ( id SERIAL PRIMARY KEY, student_id INT NOT NULL REFERENCES students(id), course_id INT NOT NULL REFERENCES courses(id), enrolled_on DATE, UNIQUE (student_id, course_id) ); CREATE TABLE assignments ( id SERIAL PRIMARY KEY, course_id INT NOT NULL REFERENCES courses(id), title VARCHAR(200), due_date DATE, max_points INT ); CREATE TABLE grades ( id SERIAL PRIMARY KEY, enrollment_id INT NOT NULL REFERENCES enrollments(id), assignment_id INT NOT NULL REFERENCES assignments(id), points NUMERIC(5,2), graded_at TIMESTAMP );
Open in the editor → to export it as PNG, SVG, Mermaid or DBML.