在这种情况下使用STI是否可以?

时间:2011-11-02 01:08:28

标签: sql ruby-on-rails inheritance sti

我有一张名为people的表格 每个person可以是clientmanageraccountant或三者的任意组合。 除了people表中的列之外,它们每个都有特殊的表列。

我现在正在做的是在每个表中使用person_id ...但我认为使用相同的表并且每个表使用不同的模型会更简单,所以我可以单独管理它们。

我应该这样做吗?

1 个答案:

答案 0 :(得分:2)

你没有一个好的继承层次结构,所以我不认为STI适用。例如,在(单一)继承方面,您如何代表既是经理又是会计师的人?

如果一个人只能拥有这三个角色中的一个,那么STI可能会有意义;但是即使那时使用继承实现角色也应该引发警告,你应该知道一个人迟早会需要多个角色(并且在交付后它可能会立即变成一个关键的必需品)。