I've decided to create a database as a personal practice.

The project is based on a fictional English language school called "ESL" located in Japan.

The school has 4 branches in 4 different cities. Whoever wants to join the school has to go through a trial lesson. A person from the staff conducts the trial lesson and a teacher assets the student level. Once the student decided to join the school, they can take lessons. Every lesson is private (one teacher and one student)

ESL English language school DB schema

I'm not sure about the student table. In my project, both potential students and actual students are present in the table. Would it be better to create 2 different tables?

1 Answer 1

  1. I don't know what you mean by plan in student table. But you could add a bool or varchar column that can handle the case of actual students or potential students.

  2. Since you connected student table with school table you don't have to connect school table with trial table again or with lesson table again.

I hope this will help you 🙏.

  • 1- A student can choose different study plans (for example, 4 lessons a month plan, or joining the school during a special campaign). The column "enrolled" in the student table can be Y (yes), N (no), or Q (quit). I planned to use that to figure out if a student is an actual student. 2-A student can take lessons in different school branches, for example, if a student took a trial in school A, they can take lessons in school B or school C.
    – Alex
    Commented Jul 17, 2022 at 3:59
  • In this situation in my view your schema is great, there is no need for 2 different tables, nice work 👏. Commented Jul 17, 2022 at 7:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.