Honestly, it depends on the requirements of the application and how you want to implement it as there could be no right or wrong answer. Pilot and Manager could be separate generalizations of the User class. User could also be a unary relationship. Who's to say you couldn't put an isPilot field in the User class? In the end it may be more practical to split the two as child classes of User. I know I would do it this way when coding them, by having User as my base class and then have Pilot and Manager extend User.
You could have something like this:
Or if a manager is always a pilot you could do this:
Personally I would implement the former because what if a manager comes along who isn't a pilot? Again, like I said it depends on the requirements of the application and how you want to implement it. Neither way is wrong.