首页 文章

为社交网站创建订阅源

提问于
浏览
0

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

有人有任何想法吗?

1 回答

  • 1

    你能为所有单独的表中返回的内容 Build 一个通用格式吗?例如,您可以编写一个返回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,然后让用户动态选择Feed类型,他们会看到任何一种类型或任何类型组合的前20个故事 .

相关问题