场景:我的应用中有一个用户表。我还有两个用户子类,让我们说贡献者和观众。每个用户组必须具有完全不同的属性集,但它们都共享某些用户属性(登录名,密码,名称)。
使用Ruby on Rails实现此目的的最佳方法是什么?
@user.viewer
,而我希望能够做到@viewer
1}}。最佳解决方案的任何想法?
答案 0 :(得分:2)
我可能会选择三种表格。数据完整性是代码清洁的最佳选择。
如果要使其看起来更整洁,请在Viewer和Contributor模型上放置虚拟属性,使其看起来像User属性是本地的。您可以将其作为模块并将其包含在Viewer和Contributor模型中。
您还可以设置:include => :默认查找程序上的用户,以便在使用这些字段时不会获得额外的查询。
我现在非常喜欢咖啡因,所以如果没有意义的话请回复:)
答案 1 :(得分:1)
不要破坏数据库架构,使其最适合。我喜欢三种表方法。如果你的数据库不好,应用程序将很难在以后修复问题,运行缓慢等等。