如何创建';馈送';为用户(数据库设计)


How to create a 'feed' for users (DB Design)?

因此,在我的网站上,用户可以执行不同的任务,如评论、加入群、发送消息、提供反馈等。现在,我想在用户个人资料页面上创建一个提要,"告诉"每个人他们一直在做什么,有点像facebook,但要简单得多。

示例:

John Doe sent a message to Bob Smith

Bob Smith gave some feedback to John Doe

Bob Smith joined John Doe's group

要执行这样的操作,我应该从相应的表中提取所有信息,还是每次执行我希望包含在提要中的任务时都在"提要"表中插入一行。

基本上,我想通过配置文件页面上的活动选项卡实现他们在stackoverflow上所做的事情。

我认为,如果您确实用用户的活动创建了一个额外的表,那么会更容易。检查所有这些表,你可能甚至不需要这些表中的所有数据,然后将它们格式化为提要,这会对你的服务器造成损失。还要考虑一下未来(例如,如果你有100张这样的桌子会怎么样)。

使用额外的表可以只查询提要表并使用这些信息。不必从正确的表中提取这些数据,因为表中的数据可能没有直接用处,需要一些计算。

您可以考虑的另一点是将来对提要的更改。假设你想在提要上显示更多信息,但相应的表没有这些信息,你必须更改所有这些表(更不用说使用它们来添加信息的脚本/页面)。但是使用一个提要表,您可以再添加一个元素并更改提要创建方法。

userid_did(int)|userid_to(int)|操作(int)|日期(varchar)|id(int

我想?