【发布时间】:2014-12-17 11:13:04
【问题描述】:
我正在使用 Ruby on Rails、Rails 4 构建一个应用程序。
假设我有一张表Users,我想指定两种类型的用户User_1 和User_2
User_1 将使用父表 Users 中的所有列,但 User_2 将使用 User 表中的所有列,例如 User_1,但需要两个额外的列来保存详细信息。问题是这些额外的细节存储在哪里以及如何存储?
这些列是否添加到父表Users?还是Model 或Controller 中编码的额外属性?我正在寻找存储两个整数数据,他们将在他们的个人资料中输入。
感谢您的观看! :)
【问题讨论】:
-
我通常只在模型具有相同属性但需要不同行为的情况下使用 STI。如果您发现所需的各种属性之间存在区别,最好选择两个表和模型。
-
如果唯一的区别在于 User_2 有额外的属性,那么只需将其保留在一个模型中即可。仅当两种类型的用户具有相同名称但行为不同的方法时,使用 STI 分离模型才有意义。
-
我相信 Roob 在这种情况下是正确的。除了附加属性之外,这两个用户在应用程序上的行为和功能会略有不同。非常感谢你们的意见。
-
我希望“单表”可以作为一种赠品,用于查找或放置属性的位置):) :)
标签: mysql ruby-on-rails ruby database activerecord