为社交网站创建源
我正在制作一个社交网站,并且无法确定从各种表中获取数据的最佳方式是如何在Feed中显示。每次存储东西时,都会存储一个时间戳,所以我想知道从各种不同的表中按时间戳排序检索数据的最佳方法,并且每页只限于20个结果。理想情况下,我希望MySQL查询所有不同的表格并排序并限制它,但是因为不同的表格并不都是相关的,并且需要根据表格的不同来返回不同的数据,所以我不认为这是将成为可能。我可以单独查询每个表格,但是如何将所有信息排序并排序为页面,以便所有不同的实体都在一个有序列表中。我使用的服务器端语言是PHP和codeigniter框架。为社交网站创建源
任何人有任何想法?
你能为所有单独的表格返回的内容建立一个通用格式吗?因此,例如,你会写一个查询,回来FEEDTITLE,FeedSummary和时间戳:
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个,让客户端对它们进行排序。因此,请将它们全部发送到用户界面,并让jQuery代码显示前20位,然后让用户动态选择Feed的类型,他们会看到前20个故事中的任何一种类型或任意类型的组合。
这里有两个非常好的主意,非常感谢我特别喜欢jQuery方法,这会为feed添加额外的维度 – geoffs3310 2012-02-25 13:39:47
可以给你的表的一些结构。 – check123 2012-02-25 13:28:50