Ruby on rails 建议对用户表使用单表继承吗?

Ruby on rails 建议对用户表使用单表继承吗?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,对于我当前的一个项目,我试图首先为应用程序设计数据库模式。但是,我无法决定是否在应用程序的用户模型上使用 用户可以是:所有者、居民或管理员,因为他们使用不同的功能共享相同的属性,所以我认为STI适用于这里。我的方向对吗?如果没有,请建议更好的替代方案。多态关联在这里合适吗?请注意,身份验证和访问控制是针对用户的,通常是这样的 关于,我相信你是对的——在这种情况下,STI是合适的。由于身份验证是针对用户的,因此它将为您提供更简单的解决方案。另外,由于它们也共享属性,我想说STI优于多态关联——唯一

对于我当前的一个项目,我试图首先为应用程序设计数据库模式。但是,我无法决定是否在应用程序的用户模型上使用

用户可以是:所有者、居民或管理员,因为他们使用不同的功能共享相同的属性,所以我认为STI适用于这里。我的方向对吗?如果没有,请建议更好的替代方案。多态关联在这里合适吗?请注意,身份验证和访问控制是针对用户的,通常是这样的


关于,

我相信你是对的——在这种情况下,STI是合适的。由于身份验证是针对用户的,因此它将为您提供更简单的解决方案。另外,由于它们也共享属性,我想说STI优于多态关联——唯一不同的是处理的用户类型。

我相信你是正确的——STI在这种情况下是合适的。由于身份验证是针对用户的,因此它将为您提供更简单的解决方案。此外,由于它们也共享属性,我想说STI优于多态关联——唯一不同的是处理的用户类型。

此外,如果您打算使用Desive,您将省去与拥有多个Desive模型相关的麻烦。这意味着一个单一的登录屏幕,一组自定义控制器,等等,你也可以考虑使用与CCAN的用户->角色关系,特别是如果它的主要角色可以区分你的用户基础。@ IPD:我实际上考虑使用CAN(RANANBATES的大风扇),但是我不认为STI会在那里得到支持。(这也是我首先问这个问题的部分原因)@ipd绝对会让工作设计变得非常简单。不过你应该能够使用CanCan——你只是在定义角色,授权应该很简单(但我还没有使用CanCan,所以我不能确定)我想不出为什么CanCan不能很好地使用STI。但我也不确定如果你在用户模型中定义角色,你是否需要STI。这取决于你想让你的用户类有多不同,如果只是角色区分了它们,那么你可能根本就不需要STI。另外,如果你想使用Desive,你需要我会为你自己带来一些与多个设计模型相关的头痛。这意味着一个单一的登录屏幕,一组自定义控制器等等。你也可以考虑使用一个用户-角色关系来与康康进行交互,特别是如果它的主要角色可以区分你的用户基础。@ IPD:我实际上在考虑使用CAN。(RyanBates的超级粉丝),但我不认为STI会在那里得到支持(这也是我问这个问题的部分原因)@ipd绝对,它会让工作设计变得非常简单。不过,你应该能够使用CanCan——你只是定义角色,授权应该很简单(但我还没有用过CanCan,所以我不能肯定)我想不出为什么CanCan不能很好地使用STI。但我也不确定如果你在用户模型中定义角色,你是否需要STI。这取决于你想让你的用户类有多大的不同,如果只是角色不同,那么你可能根本不需要STI。