我正通过Heroku在Postgres上运行Rails应用程序.
我想在我的网站上实现类似Facebook“喜欢”的各种项目,例如用户评论.将这些存储在我的数据库中的最有效和快速的最聪明的方法是什么?
显而易见的是在用户和项目之间有一个类似的连接表,如下所示:
user_id int item_id int item_type string created_at datettime
但是,当显示时,这意味着每次我拉一个项目时,我都必须在整个相似的表中拉一个连接,这可能会变得非常大.
对此的明显反应是在项目中存储计数器,用于持续计数.但是,这不起作用,因为谁喜欢一个项目很重要,既可以显示在项目旁边,也可以隐藏用户已经喜欢的东西的类似按钮.
我的计划是在所有可爱的项目中添加一个文本字段,我将在其中存储一个序列化数组.这样,项目的每一次拉动都会附带一个喜欢它的完整列表.有没有更好的方法来做到这一点,还是这是推荐的方法?