我仍然很擅长从头开始创建rails应用程序,并且想知道为有效查询设置它们的最佳方法。
考虑这种情况。您正在构建一个社交站点,该站点使用mysql2为数据库共享书籍。你从两个模型开始; 用户和作者。两者都需要name
属性; first_name
,middle_name
,last_name
等
创建名称模型更有效率,其中name将是它自己的个人表吗?
或者将名称属性添加到单个用户和作者,其中属性保留为列?
答案 0 :(得分:2)
首先,您可以考虑使用PostgreSQL实现这一点 - 有很多,但性能是其中一个原因。
此外,您必须认为您构建的系统应该是可维护的。有一个单独的名称表可能是一个非常糟糕的主意。您是否计划为该名称表中的所有模型添加名称?听起来怪怪的。您认为通过这样做可以解决什么问题?
相反,我认为索引可以在检索关联时帮助你(https://tomafro.net/2009/08/using-indexes-in-rails-index-your-associations)。
我无法就您的数据模型提供更多建议。这取决于要求和未来的意图。您要查询每个模型然后检索关联吗?是否会有一种标记方法来处理同义词?