2012-06-20 31 views
2

我正面临一个设计问题,我根本找不到。我在我的数据库中有一个名为Timed_Tests的表格。 Timed_Tests有一个名为Timed_Test的关联模型。Mixins与Citier在Ruby on Rails中的继承关系

最近,我意识到我实际上需要三种类型的Timed_Test,但功能略有不同。目前有Timed_Test,将会有一个Test_Basic,没有Timed_Test的结束日期,并且会有一个Special_Test和一些额外的属性。

我想弄清楚什么是最好的方法来设置它。我是否应该为所有不同类型的测试拥有一个包含所有不同类型属性的大型测试表?我应该如何设置我的类继承结构?我应该使用citier(http://peterhamilton.github.com/citier/)吗? mixin如何适合数据库模式...?

我问了一堆问题,他们有点含糊我知道 - 请随时问我澄清问题,并随时回答我上面想到的任何一个问题。

非常感谢!

回答

0

如果SpecialTest实例的特定属性不是很多,则可以安全地使用单个表继承。通过这种方式,您可以自由地以任何期望的方式专门化您的类的行为,从而保持映射的简单性。

使用mixins(所以不能以任何方式进行表继承)将阻止您跨类检索测试实例。