Rails 4规划您的应用程序以进行有效查询

时间:2014-10-19 17:27:59

标签: mysql ruby-on-rails database performance

我仍然很擅长从头开始创建rails应用程序,并且想知道为有效查询设置它们的最佳方法。

考虑这种情况。您正在构建一个社交站点,该站点使用mysql2为数据库共享书籍。你从两个模型开始; 用户作者。两者都需要name属性; first_namemiddle_namelast_name

创建名称模型更有效率,其中name将是它自己的个人表吗?

或者将名称属性添加到单个用户作者,其中属性保留为列?

1 个答案:

答案 0 :(得分:2)

首先,您可以考虑使用PostgreSQL实现这一点 - 有很多,但性能是其中一个原因。

此外,您必须认为您构建的系统应该是可维护的。有一个单独的名称表可能是一个非常糟糕的主意。您是否计划为该名称表中的所有模型添加名称?听起来怪怪的。您认为通过这样做可以解决什么问题?

相反,我认为索引可以在检索关联时帮助你(https://tomafro.net/2009/08/using-indexes-in-rails-index-your-associations)。

我无法就您的数据模型提供更多建议。这取决于要求和未来的意图。您要查询每个模型然后检索关联吗?是否会有一种标记方法来处理同义词?