如何在Rails中组织多级继承模型?

时间:2012-06-14 07:55:53

标签: ruby-on-rails single-table-inheritance

我无法将如何为我的rails应用程序组织数据库。我在这里和Google上发现的问题讨论了有限类继承的问题。如果课程数量很高怎么办?如果我想为schema.org hierarchy中标识的所有类型的每种类型设置一个类,应如何组织这些类?

虽然我已经发现了一些对类表继承的支持,就像这个名为CITIER的gem一样,但实现单表继承似乎更简单,更好地支持。

我应该坚持使用STI还是尝试使用MTI?

1 个答案:

答案 0 :(得分:0)

恕我直言,STI理所当然地将两个对象(将由类封装)共享几乎所有相关属性。因此,在报纸上,拥有一个继承自它的Editor类(类编辑器< Employee)的Employee类可能是有意义的,因为编辑器可能只是一个非常不同类型的员工。当您建模的to对象有太多不相同的情况时,可能会出现STI问题,即使将一个作为另一个的子类是有意义的。单个表可能变得太稀疏。在这种情况下,我发现使用“has”和“belongs to”来建模对象更有效。 YMMV。