Overview:
I am trying to create a user group system for an English teaching website.
Each user group has one teacher account assigned to it and can have up to five student accounts.
To do this we have created three tables: 'teachers', 'students' and 'groups'.
I also have a number of pages to create/view/assign-to groups, as you can see in the screen shot below:
Here is the structure of our tables and how they interact with one-another to make sure that students and teachers are properly assigned:
1 - So first we create a group (+ New Group page) which adds it to the group table, the group has a name, unique ID and unique teacher ID which is taken from the Teacher table.
2 - We then add up to five students to the group (Assign Students page). The student is considered "in the group" because on the student table the group name and id is added to the "group_name" and "group_id" columns respectively.
Question:
1 - Is my thinking correct on the database architecture and general structure here or are there some obvious things that I am missing?
2 - Because a single teacher can be assigned to many groups I need to be able to see all the groups that a single teacher is assigned to, should I add all the groups into one table "td" cell by concatenating them with a breakspace or should I have a separate row for each group... the picture below should explain it better...
Any wisdom on the matter would be appreciated :-) .


