我还没有为我的问题找到一个好的解决方案,我希望你能提供帮助。
我有一个网络网站,用户可以上传照片,评论等。每个用户和整个页面都有一个“活动流”,用户可以在其中看到当前正在页面上发生的事情。 活动流具有以下内容/表:
照片|评论|团体|书签
表格完全不同,它们唯一的共同点是“时间”栏目。
如何从所有这些表中进行选择,限制它并按时订购?由于我不想合并数据,因此加入不是正确的方法,或者是它?我也查看了UNION,但UNION希望每个Select都选择相同数量的列(为什么会这样?)。
每个条目都应包含一个类型 - “标志”,从中选择表。我需要内容的类型,所以我可以将数据发送到适当的模板。所以我想要一个像这样的结构(如果可能的话,应该在请求中添加“类型”):
array(3) {
[0]=>
object(stdClass)#5 (2) {
["id"]=>
string(4) "5501"
["datum"]=>
string(19) "2014-05-22 18:26:24"
["type"]=>
string(4) "photo"
}
[1]=>
object(stdClass)#6 (2) {
["id"]=>
string(4) "5500"
["datum"]=>
string(19) "2014-05-22 18:26:22"
["type"]=>
string(4) "comment"
}
[2]=>
object(stdClass)#7 (2) {
["id"]=>
string(4) "5499"
["datum"]=>
string(19) "2014-05-22 18:26:21"
["type"]=>
string(4) "bookmark"
}
}
我目前的解决方案如下: 我为每个表(照片,评论,书签等)执行单个查询,并将结果合并到一个数组中。然后我按日期对数组进行排序并打印结果。但是,我对这种方法并不是很满意,因为我需要对数组进行切片(因为我不打算将很多项目打印出来)并记住切片对“第2页”请求的位置等。使用单个查询和限制/订单会“更容易”,我猜...另一个棘手的部分是,前端用户可以激活/停用应该显示的表格,例如,如果他只想看到新的“照片”,他可以停用其他人......
有什么想法吗?
最好的问候!