Schema design for eduSpace

Schema design using Prisma for school management system


Considering initial functional requirements, the schema is proposed to answers questions regarding objects/entities involved in the system. Some of these entities are Student, Employee, Teacher, etc.

Anything we want to know about Student like academic or personal information, or HR and payroll information about Employee, the user should be able to query the database and get the information. We want to store these data efficiently, securely, and queries running on them should be fast. Just some heuristic to start with.

This schema will evolve over time. most recent schema

Other than tables for user configuration, and setup, the main tables are This is gist of the schema

ER diagram: draft

 
model User {
 // User is the admin of the school. Admin can setup school, and configure system for
 // their preferences. And most importantly, admin can run school activities and functions using
 // this system. These academic, administrative, and financial activities are the core of the system.
}
 
model School {
 // A school is an organization that is setup by User/Admin.
 // School have identity, policies, and hierarchical structure among sub-user.
 // For example, a school can have multiple campuses, departments, Employees, and Students.
}
 

The is User is a tenant. A tenant can register schools, and manage them in eduSpace.