如何使用MYSQL跟踪用户喜欢的内容

时间:2012-05-25 06:18:14

标签: mysql

对于像Digg这样的网站。如果有人喜欢文章,你如何使用MYSQL来追踪?

仅仅跟踪喜欢的总数似乎很简单。我不明白的部分是如何做到的 1.让用户不要只投票一次 2.允许用户点击他们的个人资料,查看他们喜欢的故事。

您是否在表格中有一列包含故事信息,您只需添加逗号分隔的用户名?你可以跟踪谁喜欢一个故事,但数据会变得很大,特别是像拥有10万或更多用户的digg这样的网站。您如何让用户看到他们喜欢的所有故事?

谢谢。

3 个答案:

答案 0 :(得分:1)

每个人都需要一排。不要使用以逗号分隔的列表。


  

如何1.让用户不要只投票一次

在articleid上创建一个唯一索引,userid。


  

您如何让用户看到他们喜欢的所有故事?

SELECT articleid FROM likes WHERE userid = 42

  

但数据会变得很大

是的,它可能会变得巨大。大多数网站都可以轻松应对单个数据库。非常大的网站需要使用群集在多台计算机上存储数据。需要对数据进行分区,以便应用程序知道在哪个服务器上查找数据。

答案 1 :(得分:0)

在社交网络中,这些日子就像图形数据结构。 每个实体,如人,照片,视频,状态更新,评论等都是图形和喜欢的节点,不喜欢是两个节点之间的连接。

理想情况下,你会有一个喜欢的表,你可以添加一个喜欢的表。 您可以在哪里存储喜欢的内容,列中的内容以及其他信息。

复杂的社交网络不仅仅是这个。

答案 2 :(得分:0)

您可以将这些喜欢的内容存储在名为story_likes的单独表格中,其中包含两列:story_id和user_id。

1)在数据库中设置一个约束条件,它们的组合应该是唯一的。这样你的用户只能讲一次故事。
2)您可以从此表中提取用户喜欢的故事,并使用您拥有的故事ID来提取其他故事详细信息。对于MYSQL数据库来说,100,000行并不是那么大。

您还可以通过为州= ENUM('LIKED','DISLIKED')列提供用户不喜欢的故事。