2010-10-06 93 views
1

我正在记录用户的所有行为,并希望显示他们的行为,以供他们跟随他们看 - 有点像Facebook为朋友做的。MySQL加入朋友饲料

我记录表中的所有这些行动具有以下结构:

  • ID - PK
  • 用户ID - 他的行动得到记录
  • actiondate用户的ID - 行动发生时
  • actiontypeid - 类型的id动作(存储在不同表中的动作类型 - 即跟随其他用户,写在人的简档上,创建新内容,评论现有内容等)。注释ID)
  • onobjectid - 他们做的动作,他们发表了评论的内容(即ID)的对象ID

现在的问题是有一些得到记录几种类型的动作( actiontypeid)。

什么是检索数据以显示给用户的最佳方式?

最简单的出路是让用户跟随数据集,然后从那里抓取其他表中的所有其他信息(即用户的姓名,刚刚开始关注的人的姓名,姓名他们所写的用户配置文件等)。然而,这会在while循环中创建大量的小查询和访问数据库。不是一个好主意。

我可以使用连接来检索一个海量数据集中的所有内容,但是我怎么知道从哪里获取数据? - 有不同类型的要求我寻找到几个不同的表来获取数据的基础上,actiontypeid行动......

即要得到用户X正在关注用户Y我有从追随者表中获取我的数据(用户Y的用户名),而用户X的成分量Y评论需要我看在内容表来获取内容的标题和URL。

欢迎任何提示,谢谢!

+0

嗯...我错过了什么吗?你有两张桌子还是只有一张?你提到一个内容表和一个追随者表,但你暗示一切都在一张桌子里......也许你可以重新表述一下吗?另外,您要为用户显示哪些数据? – KeatsKelleher 2010-10-06 03:37:49

+0

我有两个以上的表格,抱歉让我感到困惑。这些动作被存储在动作表中,动作类型表上的动作类型,用户表中的用户,内容表中的内容......我需要能够从用户和内容表中获取信息,这些信息基于动作类型。 – Mihnea 2010-10-06 14:08:30

回答

1

考虑为不同的actiontypeids创建几个视图。联合他们有一个完整的历史。