An entity can play different roles in a database. For instance, a person can be an employee of a company, and he/she can also be a part-time student of a university. So, this person plays two distinct roles at the same time. How could I embed this sort of fact into the database design effectively? My initial thoughts are to first create a table of available roles "ROLE" and then associate the "ROLE" with "PERSON" using a junction/many-to-many table "PERSON_PLAYS_ROLE". Is it a correct solution? Any better ideas?