2011-06-04 55 views
3

我正在使用Codeigniter和Ion Auth进行用户管理。我想创建两个不同的用户角色 - 一个用于志愿者和一个用于组织。我知道我可以将Ion Auth的groups用于访问控制等功能,但将字段添加到不同用户类型的方式会是一种好方法(例如 - 志愿者用户将拥有“语言使用”字段,而组织将会一个'任务'字段)?我应该为每个新用户类型扩展Ion Auth类并分别为每种类型处理CRUD,还是使用“组”字段和用户标识来引用另一个表中的字段?对于解决这个共同问题的方法有何洞见?使用Ion Auth在Codeigniter中创建用户角色和配置文件

回答

2

我之前有同样的问题,我最终做的是建立关系表来处理不同领域的不同组。然后,我修改了一下profile()代码,根据用户的组设置来加入附加关系表。

我会开始建立一个关系数据库。

例如:

**volunteers table** 
id 
user_id 
languages 

**organizations table** 
id 
user_id 
mission 

然后根据用户的组,加入在轮廓()函数的表。

希望这会有所帮助!

5

我会建议您只需将所需的所有字段添加到元表中,并只更新每个用户组所需的字段。如果您需要多个用户组,请检查Ion Auth v2

+0

你会如何建议我为属于多个用户的用户存储信息?您是否会为每个组创建两个单独的元表,如上面添加tpae的建议,或者像您之前说的那样,带有“group_id”列的一个元表?例如,我可以让用户成为“买家”,“卖家”或两者。元表可以具有id,user_id,group_id,field_key和field_value。我觉得后一种方法效率不高,组织混乱,前者更好。你怎么看?有更好的解决方案吗? – 2012-12-05 14:32:40