【问题标题】:Advantages and disadvantages of Ruby on Rails polymorphic relationships [closed]Ruby on Rails 多态关系的优缺点 [关闭]
【发布时间】:2009-11-25 18:42:21
【问题描述】:

你知道 Ruby on Rails 多态关系的优点和缺点。

【问题讨论】:

标签: ruby-on-rails ruby database activerecord


【解决方案1】:

优点:

  • 您可以非常轻松地将任何内容链接到任何内容
  • 适应性强的关系有助于适应不可预见的情况
  • 很容易实现关系
  • 非常适合临时系统

缺点:

  • 外键不实用
  • 索引包含另一个维度的复杂性
  • 使用 STI 时难以识别表之间的关系
  • 数据库图表工具无法解释
  • 对于连接模型并不总是实用
  • 强烈反对必须验证数据完整性的系统

我非常喜欢将这种关系用于根据需要附加到大量事物的记录,例如,可能适用于各种记录的评论或注释记录。

它不太适合经常在 JOIN 中执行关系的情况。也就是说,多态关联不应该在记录之间的关系中间,而应该作为外围的东西。

【讨论】:

  • 您能否详细说明为什么它不适合处于记录之间的关系中间?外键不实用,但完整性是在 Rails 层而不是 DB 处理的,对吧?
  • 在中间使用多态关联意味着您的连接条件至少有三个组件,如果两个关系都是多态的,则有四个。这可能会对性能产生严重的不利影响,因为索引大小会随着所涉及的键中元素的数量而显着增长。较大的索引更新成本会更高,因此仅索引所需的最小值是有利的。与往常一样,花时间用大量代表您系统的大规模数据对任何建议的数据库结构进行基准测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多