posted 23 years ago
You've done a fine job of describing the data structure of your proposed system, but you haven't told us what operations you will need to do on it. Choosing a representation for data usually depends more on how you want to use the data than what it contains.
Do you need it to be set up for fast queries or fast updates? What sort of questions will the system routinely be asked? Will access to things typically be specified in terms of by a single role, several different roles, named group of roles, several named groups of roles, a single user, several named users, a named group of users, a mixture of users names and roles etc.?