I am currently making a management software for a small artistic school: a small intranet in PHP / MySQL.
I’m trying to draw database architecture before I start coding because I don’t want to make bad choices right from the beginning.
My diagram can be found below.
The software requirements are as follows:
- Register a student for a school year and assign them to one or more courses
- Register a student for a unique event (Concert, Masterclass, internship …)
- Register teachers and assign them to one or more courses
- Manage the student financial side, the number of payments and the total cost of the training
- And later there will be other needs like saving marks, schedules, and maybe other things …
I tried to transcribe it all on my diagram, but here are some explanations:
- A student (
studenttable) is unique and can register for several years. This table contains all the generic information (name, email, phone …)
- A student registration (
enrollmenttable) can follow several courses (
coursetable) and several events (
- A student can pay for their training in one or more installments (
- A course is given by a single teacher (
trainertable) and an event is given by a single speaker (
Is this the best way to keep a student’s information over several school years? Should I add some optimizations?