【发布时间】:2011-12-10 11:24:57
【问题描述】:
我有一个用户数据库表,其中包含 密码、电子邮件 等常用字段。还有一个名为 level 的字段定义了用户级别,例如 member、编辑器或管理员。
还有一些特定于成员、编辑和管理员的字段,其他人不需要。所以我认为我应该为用户类型创建单独的表。
这就是问题所在; 如果我想遵循 Rails 的方式,我应该如何解决这个问题? 在数据库设计和关联方面。
【问题讨论】:
-
您应该更具体地了解您的需求。那些额外的字段是什么?你认为你以后会需要更多的“角色”吗?一个用户可以同时拥有多个“角色”吗?乍一看,我会说为不同的用户类型创建多个表是一个坏主意:用户就是用户,无论其类型如何,您最终可能会在不同的表上出现重复项。另一个建议是查看一些authorization gems 以寻求灵感。
-
我也不想为用户使用多个表,但用户类型需要
points字段来执行某些操作,而其他用户类型则不需要,另一个用户类型必须与room表关联但其他用户类型.因此,在他们不需要时为每个用户创建room_id,这对我来说似乎有点不对劲。points字段也是如此,对吧?那么在这种情况下我应该使用多个表吗?
标签: ruby-on-rails database-design associations