繁体   English   中英

为社交网站创建提要

[英]Creating a feed for a social networking site

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

任何人有任何想法吗?

您可以为所有单独表中返回的内容建立通用格式吗? 因此,例如,您将编写一个查询,以获取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个故事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM