加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在数据库中存储项目的“喜欢”?

发布时间:2020-12-17 01:22:27 所属栏目:百科 来源:网络整理
导读:我正通过Heroku在Postgres上运行Rails应用程序. 我想在我的网站上实现类似Facebook“喜欢”的各种项目,例如用户评论.将这些存储在我的数据库中的最有效和快速的最聪明的方法是什么? 显而易见的是在用户和项目之间有一个类似的连接表,如下所示: user_id int
我正通过Heroku在Postgres上运行Rails应用程序.

我想在我的网站上实现类似Facebook“喜欢”的各种项目,例如用户评论.将这些存储在我的数据库中的最有效和快速的最聪明的方法是什么?

显而易见的是在用户和项目之间有一个类似的连接表,如下所示:

user_id int
item_id int
item_type string
created_at datettime

但是,当显示时,这意味着每次我拉一个项目时,我都必须在整个相似的表中拉一个连接,这可能会变得非常大.

对此的明显反应是在项目中存储计数器,用于持续计数.但是,这不起作用,因为谁喜欢一个项目很重要,既可以显示在项目旁边,也可以隐藏用户已经喜欢的东西的类似按钮.

我的计划是在所有可爱的项目中添加一个文本字段,我将在其中存储一个序列化数组.这样,项目的每一次拉动都会附带一个喜欢它的完整列表.有没有更好的方法来做到这一点,还是这是推荐的方法?

解决方法

您是否有理由相信您的数据集将会如此之大以至于加入太昂贵了? Postgres虽然没有最快的RDBMS那么快,但现在相当快.我曾经运行过一个每天都有数百万次网页浏览的网站,并且需要一些非常复杂的查询来生成每个页面.通过一些简单的缓存,我们能够在非常适度的硬件上运行它.

当你进行非规范化时,你会放弃使用RDBMS的许多好处.如果我知道必须,我只会这样做.如果是这种情况,我会考虑使用其他东西,比如简单的键/值数据库,用于该数据.但我认为,如果您拥有大量数据,情况可能就是这种情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读