多态关联是否必要?

mco*_*mey 4 foreign-keys polymorphic-associations ruby-on-rails-3

我是一个铁杆新手,正在努力理解在具有相关外键的多个belongs_to声明中使用多态关联的优势.例如,在Ryan Bates的railscast(http://railscasts.com/episodes/154-polymorphic-association-revised)中,文章,事件照片都可以有很多注释,因此他使用可评论来建立多态关联.

为什么不只是将注释属于其他三个资产中的每一个,并在其表中包含article_id,event_idphoto_id外键,其中只有一个非空?

dav*_*rac 6

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

  1. 具有许多空值的稀疏表

  2. 没有关注点分离.添加可注释模型时,注释必须更改

  3. Rails已经支持多态关联并且易于使用它们.那为什么不呢?