Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 多态关联是必要的吗?_Ruby On Rails 3_Foreign Keys_Polymorphic Associations - Fatal编程技术网

Ruby on rails 3 多态关联是必要的吗?

Ruby on rails 3 多态关联是必要的吗?,ruby-on-rails-3,foreign-keys,polymorphic-associations,Ruby On Rails 3,Foreign Keys,Polymorphic Associations,我是一个rails新手,正在努力理解使用多态关联优于使用关联外键的多个声明的优势。例如,在Ryan Bates的railscast()中,文章、事件和照片都可以有许多评论,因此他使用commentable建立了多态关联 为什么不让注释分别属于其他三个资产,并在其表中包含article\u id、event\u id和photo\u id外键,其中只有一个是非空的 你可以这样做,但也有缺点。我能想到的一些: 具有多个空值的稀疏表 不分离关注点。每当添加可注释模型时,注释都必须更改 Rails已经支

我是一个rails新手,正在努力理解使用多态关联优于使用关联外键的多个声明的优势。例如,在Ryan Bates的railscast()中,文章、事件和照片都可以有许多评论,因此他使用commentable建立了多态关联


为什么不让注释分别属于其他三个资产,并在其表中包含article\u id、event\u id和photo\u id外键,其中只有一个是非空的

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

  • 具有多个空值的稀疏表

  • 不分离关注点。每当添加可注释模型时,注释都必须更改

  • Rails已经支持多态关联,并使其易于使用。那为什么不呢


  • 谢谢我没有想到要分开考虑。(很抱歉,我没有足够的代表投票支持。)