首先,定义您网站上的活动。一个活动可以包含多个超链接。因此,一个PHP多维数组可能会有所帮助,它可以作为序列化对象放入表中。
假设x现在与y、z、a和b相连。您可以将y、z、a和b定义为个人资料链接。例如,x评论了y的新照片。在这种情况下,y成为指向该人资料照片的新超链接。例如,x成为了Zoozoo小组的粉丝。在这种情况下,Zoozoo成为指向粉丝页面的超链接。
创建一个活动表,为了扩展它,使其变得更大,将其命名为activity_USER_ID,每次用户注册时,您都要创建此表并检查您是否需要再次创建它。
按照1、2、3或您认为最好的活动方式来定义活动,以便您支持的社区中的人们感兴趣。
表结构应该很简单:活动php数组,时间戳。如果您正在使用jQuery和Ajax来填充活动,就像Facebook中使用鼠标滚轮一样,那么您可以将php数组转换为json,并在客户端上进行格式化。
每当用户登录时,请执行此操作。
如果用户基数很大,比如一百万,则您可能需要放置一些作业处理系统,该系统将在event_MM_DD_YYYY中放置事件,然后您可以对这些事件进行批量处理以将其存储在活动表中。
永远不要显示超过10 20 30个最近的活动。
希望这可以帮助您 :)
我认为你已经回答了自己的问题:从单个表中提取数据。
一个简单的方法是,所有其他组件都可以与一个中央的“事件记录器”进行通信,该记录器会为用户的新闻提要记录一些内容。
我喜欢Paul的解决方案(对于像Symfony这样的某些框架非常容易)。 如果你想要更进一步提高速度,可以使用一个针对每个用户的缓存系统,在第一次请求时查询数据并建立新的feeds。然后在后续的请求中检索缓存数据。 当触发事件日志记录器时,将清除相关用户的缓存。
在Facebook的情况下,他们使用'push' ajax实现来通知客户端有新闻要展示。
Xcache、Apc或基于文件系统的缓存系统可以帮助您构建这样一个系统。