簡體   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