多态关联是否必要?

时间:2013-03-23 18:52:12

标签: ruby-on-rails-3 foreign-keys polymorphic-associations

我是一名铁杆新手,正在努力了解在多个belongs_to声明和相关外键上使用多态关联的优势。例如,在Ryan Bates的railscast(http://railscasts.com/episodes/154-polymorphic-association-revised)中,文章事件照片每个都有很多评论,因此他使用 commentable 设置了多态关联。

为什么不让评论属于其他三个资产,包括 article_id event_id photo_id 其表中只有一个非空的外键?

1 个答案:

答案 0 :(得分:6)

你可以这样做,但是会有缺点。我能想到的一些:

  1. 包含许多空值的稀疏表

  2. 不关注问题。每当您添加可评论模型时,评论都必须更改

  3. Rails已经支持多态关联并且可以很容易地使用它们。为什么不呢?