2011-07-28 45 views
0

由于我的问题简单化的,可以说我有一首歌曲和艺术家表:Rails的渴望加载关系表只有1个数据

songs 
----- 
id 
name 
artist_id 

artists 
------- 
id 
name 

大部分我查询歌曲和时间我总是需要附上艺术家的名字。为歌曲添加另一列名为artist_name是否有意义,以便我不需要执行.includes(:artist)急切加载?

我认为我目前的设计是典型的设计,但是最有效的设计是什么,或者什么是处理这种情况的最佳方式?

回答

0

要回答我的问题:

看来数据库的非规范化才有意义,在重读应用和第一个应该广泛的轮廓。

一些选项:

  1. 添加包括对歌曲的默认范围
  2. 去正规化艺术家的名字和使用模式挂钩,以确保数据的完整性
0
Song.find(2, :include => :artist) 
+0

对不起,我写了.joins(:艺术家)但我的意思是写.includes(:艺术家),这正是我目前正在做的。 –