To follow onto @PaulWalters's excellent suggestions, here is a little more about the way that set attributes work, and how they might apply in your case -- including through the magic of the Attribute Browser view.
Suppose you create a file where, among other things, you're listing various prominent figures by their names. You then create a new set-type attribute called (for instance) Roles, where you will enter as many or as few identities as you'd like for each person:
Then as you add each new person to the list, you can add as many or few Roles as you'd like. For instance, Leonardo might have three and Newton four:
Within the grammar of the program, values in set-style attributes are separated by semicolons, as in "Painter; Polymath." (Idiosyncratic spelling for "Mathematician" -- sorry, was doing this in a rush.)
In the Outline view, shown above, I've added a column (via the View/Use Columns menu choice), so that I see each person's roles next to his name. But if I use the Attribute Browser, I can see the people grouped instead by roles:
This very simple example, which took me less than three minutes to put together door-to-door, gives an idea of the open-ended configurability of things. You can have attributes for just about anything you want; you can display them in different colors and arrangements and sorting schemes; etc. But, crucially, you can start with something as simple as this and then build up.
Update Weirdly, probably because I was typing this entry at the same time, I didn't see @mwra's careful explanation of set-type attributes, immediately above, until just now. His explanation is obviously useful and right on the nature of sets in TB.