为社交网站创建提要

Posted

技术标签:

【中文标题】为社交网站创建提要【英文标题】:Creating a feed for a social networking site 【发布时间】:2012-02-25 13:26:27 【问题描述】:

我正在创建一个社交网站,但无法确定从各种表格中获取数据的最佳方式是在提要中显示。每次存储某些内容时,它都会存储一个时间戳,因此我想知道从按时间戳排序的各种不同表中检索数据的最佳方法,并且每页限制为 20 个结果。理想情况下,我希望 mysql 查询所有不同的表并为我订购和限制它,但是因为不同的表并不都必然相关,并且需要根据表的用途返回不同的数据我不认为这是将成为可能。我当然可以单独查询每个表,但是我如何将所有信息排序和排序到页面中,以便所有不同的实体都在一个有序列表中。我使用的服务器端语言是带有 codeigniter 框架的 php

有人有什么想法吗?

【问题讨论】:

可以给出表格的一些结构。 【参考方案1】:

您能否为从所有单独的表中返回的内容建立一个通用格式?例如,您将编写一个返回 FeedTitle、FeedSummary 和 Timestamp 的查询:

 select top 20 *
   from (

 select a.Title as FeedTitle,
        a.A + a.B + a.C as FeedSummary,
        a.Timestamp as TimeStamp
   from a

union all

 select b.Name + ' married ' + b.Spouse as FeedTitle,
        b.AtPlace as FeedSummary,
        b.TimeStamp as TimeStamp
   from b

) as allFeeds
  order by TimeStamp desc

不确定确切的 my-sql 语法,这将在 SQL Server 中工作并且应该非常相似。无论如何,这只是伪代码,其想法是您将在数据库中执行一些应用程序逻辑,以希望获得性能提升(因此您不必在 PHP 中对大量数据进行排序)。

另一种方法是返回每个表的最后 20 个,然后让客户端对它们进行排序。所以将它们全部发送到 UI 并让 jQuery 代码显示前 20 个,然后让用户动态选择提要的类型,他们会看到任何一种类型或任何类型组合的前 20 个故事。

【讨论】:

这里有两个非常好的想法,非常感谢我特别喜欢 jQuery 方法,它可以为提要增加额外的维度

以上是关于为社交网站创建提要的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 MERNG 实现社交媒体提要?

使用 Laravel 为社交网站创建缩略图

我可以为我的社交网站中的每个用户创建每个表吗?

创建社交网站

创建社交网站

在 modx 中为移动新闻提要创建仅内容页面