User roles recommendation

I’m in a dilemma. I have a users table. Each user has a role: admin,
manager, agent, customer.

What do you recommend about the users table? Options:

  1. in the users table, add a role column, type string, and enter the
    role as a string.
  2. in the users table, add a role_id column (integer, foreign key) that
    connects to a roles table.

I know both ways would work, but I would like to know if one approach is
better than the other and why. What has been your experience?

–basic question from a newbie

if string (text), use serialize and serialize your array of symbols to
this column

eg

USER_ROLES = {
:admin => “administrator”,
:user => “Common user”,
:guest => “guest user”
}

serialize :user_role

and use :user_role as array of roles

or

another table has advantage of some changing, holding other properties
(as human name, description, etc)…

On Jul 25, 2011, at 20:16 , Leonel . wrote:

better than the other and why. What has been your experience?
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.

===============================================================================
Tomas Meinlschmidt, MS {MCT, MCP+I, MCSE, AER}, NetApp Filer/NetCache

www.meinlschmidt.com www.maxwellrender.cz www.lightgems.cz

If you’re making a roles system on your own, I’d recommend using
cancan by Ryan B. instead. It’s very powerful, and integrates with
popular authentication libraries out-of-the-box.

cancan => GitHub - ryanb/cancan: Authorization Gem for Ruby on Rails.

I think you could use STI (single table inheritance) and create a class
for
each role.

Best regards,

Everaldo