STI与多态关联

时间:2019-04-24 07:17:16

标签: ruby-on-rails ruby

在使用STI和多态关联时会感到困惑,所以什么时候应该使用STI或多态关联?

2 个答案:

答案 0 :(得分:2)

以下是可以帮助您做出决定的不同方案

  1. 数据库结构。 STI仅将一个表用于表中的所有类。 关系,而多态关联每个类使用一个表。 每种方法都有其自身的优缺点,因为 应用程序不断增长。
  2. 共享数据或状态。如果您的模型有很多,STI是一个不错的选择 共享属性。否则可能是多态关联 更好的选择。
  3. 将来的问题。请考虑您的应用程序可能如何更改以及 增长。如果您正在考虑STI,但想添加模型或模型 偏离共享结构的字段,您可能想要 重新考虑您的计划。如果您认为自己的结构很可能会保留下来 同样,STI通常可以更快地进行查询。
  4. 数据完整性。。如果不包含数据(一个 使用数据库的应用程序),则多态关联为 可能是一个错误的选择,因为您的数据将受到损害。

如果您想进一步了解STI和Polymorpic关联,则可以使用this link,它将为使用它提供清晰的思路。

答案 1 :(得分:1)

简而言之...

  • 当您的应用不需要扩展或更改(很多)并且模型具有许多共享属性时,应该使用STI。
  • 当您的应用程序具有简单查询并且数据的完整性不是至关重要的时候,您应该使用Polymorpic。

我希望它对您有用。 :)