数据库设计:喜欢的表?

时间:2012-08-04 12:28:17

标签: mysql database postgresql database-design

我想知道,
在很多网站上都可以选择喜欢/不喜欢帖子 当然,甚至在stackoverflow。

所以,从技术上讲,这是一个很喜欢的桌子?

user_id    post_id

user_id - 谁投票了 post_id - 哪个帖子是

是关于什么的?
一个大喜欢的餐桌? 是不是有更高效/更复杂的东西?

2 个答案:

答案 0 :(得分:10)

在最基本的层面上,是的,就是这样。

但随后它开始扩大,试图回答如下问题:

  • 用户喜欢这篇文章多少钱?
  • 他们什么时候喜欢这个帖子?
  • 他们是如何找到这个帖子的?
  • 他们是否对帖子发表了评论?
  • 整个群组/社区如何像帖子一样

然后你开始想要回答有关朋友和社区的更深入的问题。

答案 1 :(得分:3)

我想我能理解你的担忧。每次需要呈现页面时都必须发出COUNT()。

你当然必须拥有这个基本表,它将成为COUNT()的基础,但你并不需要为每次访问都使用COUNT()它。

创建一个总计表,并在页面收到喜欢或不喜欢,使用触发器或调用存储过程不时更新时更新它。

我想说每种方法都适用于不同的网站个性,即更多的阅读或更多的着作,但你已经知道,当喜欢或不喜欢时,没有什么是可预见的。