首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中使用多个表和/或为Rails应用程序使用多个列

在MySQL中使用多个表和/或为Rails应用程序使用多个列
EN

Stack Overflow用户
提问于 2009-07-24 17:57:21
回答 2查看 436关注 0票数 3

我想知道在MySQL数据库中拥有冗余列的最佳实践是什么。我之所以想知道这一点,是因为我的数据库中有一个用户表,但我也希望能够显示每个用户的许多统计信息。这些统计数据可能包括用户与其他模型交互的次数或他们有多少条消息。

搜索某个对象(例如消息)的所有记录以对其进行计数是否会影响性能?或者,在每次添加/删除消息时都会更新的用户表中创建一个名为total_messages的冗余列会更好?谢谢,这让我困惑了一段时间。

EN

回答 2

Stack Overflow用户

发布于 2009-07-24 22:35:13

我要做的是在您的数据库中创建一个view,为您提供相关信息,而不是添加冗余的列,而是添加一小段可优化的SQL代码,它在外部看起来像一个列,但它保证与您的数据保持同步。SQL优化视图的事实使得检索数据的速度非常快。

票数 2
EN

Stack Overflow用户

发布于 2010-02-04 14:36:17

查看Rails中的counter_caches。他们为你做这件事。

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

就像这样

代码语言:javascript
复制
class Messages < ActiveRecord::Base
  belongs_to :user, :counter_cache => true

  # ...
end

这将要求您在messages_count的users表上有一个列(并且不需要使用messages.count)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1179191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档