我目前正在记录用户的所有操作,并希望向关注他们的人显示他们的操作——有点像 Facebook 为朋友做的。
我将所有这些操作记录在具有以下结构的表中:
- 身份证- PK
- userid - 记录其操作的用户的 ID
- actiondate - 动作发生的时间
- actiontypeid - 操作类型的 id(存储在不同表中的操作类型 - 即关注其他用户、在个人资料上写字、创建新内容、评论现有内容等)
- objectid - 他们刚刚创建的对象的 id(即评论 id)
- onobjectid - 他们对其执行操作的对象的 ID(即他们评论的内容的 ID)
现在的问题是记录了几种类型的操作(actiontypeid)。
检索数据以显示给用户的最佳方式是什么?
最简单的方法是收集用户关注数据集的人,然后从那里获取其他表中的所有其他信息(即,您关注的人刚刚开始关注的用户的名称、用户配置文件的名称他们写了,等等)。然而,这会在一个while循环中创建大量的小查询并访问数据库。不是一个好主意。
我可以使用连接来检索一个海量数据集中的所有内容,但是我怎么知道在一个查询中从哪里获取数据呢?- 有不同类型的操作需要我查看几个不同的表来检索数据,基于actiontypeid ...
即要让用户 X 现在关注用户 Y,我必须从关注者表中获取我的数据(用户 Y 的用户名),而用户 X 对内容 Y 发表评论需要我查看内容表以获取内容的标题和网址。
欢迎任何提示,谢谢!