我应该通过我的所有关系协会吗?

时间:2015-02-15 19:50:02

标签: ruby-on-rails relational-database

将表格之间的关系称为:through关联,这被认为是不好的形式吗?例如如果我有多个show,其中每个只有一个表演者,并且我想能够说出类似aShow.performer的内容,那么是否有足够的理由建立:through关联?建立这种关联是否存在缺陷?

1 个答案:

答案 0 :(得分:1)

如果您的架构如您所指示的那样简单,我不确定您为什么需要:through。相反,你会有:

显示:

has_many :performers

演奏:

belongs_to :show

在此设计中,Performer将show_id作为外键,而Show将没有Performer的外键。当你想做嵌套的事情时,:through变得必要了:

手指:

`belongs_to :performer`

演奏:

belongs_to :show
has_many: fingers

显示:

has_many :performers
has_many :fingers, through: :performers

这将允许您引用相关联的表演者的所有手指:Show.first().fingers,而不是必须首先获得表演者。

实际上,这只是从关系中取出所有工作的语法糖。