I’ve been meaning to check out how many-to-many relation is handled in different systems. So, finally the time is right and I’d like to start with TeamDesk.
We have the list of students:
And the list of courses students can attend:
TeamDesk offers to choose many-to-many option by creating relation:
The thing is it has nothing to do with actual many-to-many relation and is used just in order to create related list and calculations in the system.
To create real many-to-many relation between "Student" and "Course" it’s necessary to add "Student Course" table, where we can store the year of participation and grade data.
And create 2 references (using one-to-many relation) form "Student Course" (many) to "Student" (one) and "Course" (one):
Let’s check how it works now. TeamDesk offers 3 ways to review and enter/modify the data.
Directly in the table "Student Course":
On student’s side:
Or on course’s side as well:
There is an opportunity to build different types of reports according these table data. For example, students from which countries attend specific courses? To get this report lets add the field "Country" to the "Student" table and through lookup column embed it into "Student Course" table:
This is how the raw data looks like:
Using "Chart View" we can build such type of report:
TeamDesk is designed pretty well to handle many-to many relations. I think there won’t be any problem building view/report on data related in such a way.
There are several moot points though the vendor should take into account. Firstly, the very name of embedded many-to-many relation function misleads the user form the very start. Secondly, data input into related table "Student Course" is possible only one record at a time.