I have an app which already uses a user table for authentication. In
the early days I added extra boolean columns for flags indicating user
permissions (admin, etc.) which worked quite well up to a point.
Now the number of permission flags is increasing so I'm curious as to
where I should go from here...
1. Keep adding boolean columns (simple, but is there a drawback of
having too many columns?)
2. Have some kind of :roles table and create a join table to
link :users to :roles (probably cleaner but does mean either doing
joins all the time, or executing a new query each time you check a
3. Have a :roles column in the :users table and store a YAML structure
with all the roles in a set of some sort.
Problem is I like all three options. Which of these would be
considered the most "Rails-like" way to go about things?