First question would be: what is the purpose of having so many different people types. Do you need to store different information per type, or do you need to be able to store other type of relations?
In this case someone can only be one type (trainer or trainee), but are there situations where you could be both (trainer for course A, trainee for course B)? Then this would not work. I would suggest to look into a 1-1 relation between Acount and Person and create a relation between Person and Type using an extra object to be able to store additional information.
But again, it depends on the goal you want to achieve.