Courses versus offerings, terms, enrolments and grades. The one decision that shapes everything else is keeping the catalogue entry separate from the thing students actually enrol in. Every one opens in the free drawDB editor in a click, and is public domain.
6 schemas here, from 10 to 13 tables (73 tables and 641 columns in total), written for PostgreSQL, MySQL, Oracle. Each one ships an ER diagram you can open and edit, a column-by-column reference, design notes explaining the trade-offs, and SQL for all six dialects. Recurring themes across the set: courses, quizzes, attendance.
How a MOOC platform models its data: versioned course content, dated session runs, an outline tree of modules and lectures, quizzes drawn from question banks, peer-graded assignments with rubric criteria, entitlements and certificates.
How a gamified language app models its data: directional courses, a skill tree with unlock rules, lessons and exercise items, crown levels, a per-word spaced-repetition schedule, streaks with freezes, hearts and weekly leagues.
How a public library models its data: works, editions and barcoded copies, branches and holdings, members, loans with renewals, a positioned hold queue, fines and payments, and inter-branch transfers.
A quiz engine that handles four question types at once: reusable question banks, draw rules and randomised papers, typed answer keys, per-question responses, partial credit, negative marking and time limits.
Courses versus sections, terms, enrolments that carry the final grade, prerequisites as a self-join, assignments with weights, per-attempt submissions and idempotent attendance registers.
School administration in Oracle: students and guardians with custody and contact priority, enrolment history per school year, a period-based timetable with room allocation, attendance per lesson, discipline records, transcripts and a fee ledger.