1

我目前正在记录用户的所有操作,并希望向关注他们的人显示他们的操作——有点像 Facebook 为朋友做的。

我将所有这些操作记录在具有以下结构的表中:

  • 身份证- PK
  • userid - 记录其操作的用户的 ID
  • actiondate - 动作发生的时间
  • actiontypeid - 操作类型的 id(存储在不同表中的操作类型 - 即关注其他用户、在个人资料上写字、创建新内容、评论现有内容等)
  • objectid - 他们刚刚创建的对象的 id(即评论 id)
  • onobjectid - 他们对其执行操作的对象的 ID(即他们评论的内容的 ID)

现在的问题是记录了几种类型的操作(actiontypeid)。

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

最简单的方法是收集用户关注数据集的人,然后从那里获取其他表中的所有其他信息(即,您关注的人刚刚开始关注的用户的名称、用户配置文件的名称他们写了,等等)。然而,这会在一个while循环中创建大量的小查询并访问数据库。不是一个好主意。

我可以使用连接来检索一个海量数据集中的所有内容,但是我怎么知道在一个查询中从哪里获取数据呢?- 有不同类型的操作需要我查看几个不同的表来检索数据,基于actiontypeid ...

即要让用户 X 现在关注用户 Y,我必须从关注者表中获取我的数据(用户 Y 的用户名),而用户 X 对内容 Y 发表评论需要我查看内容表以获取内容的标题和网址。

欢迎任何提示,谢谢!

4

1 回答 1

1

考虑为不同的 actiontypeid 创建多个视图。将它们联合起来拥有完整的历史记录。

于 2010-11-08T11:21:12.390 回答