Php 在类似推特的提要上突出显示用户喜欢的帖子

Php 在类似推特的提要上突出显示用户喜欢的帖子,php,database,rest,api,architecture,Php,Database,Rest,Api,Architecture,我正在构建一个与Twitter用户界面非常相似的应用程序,包括使用react for the client和API端点来喜欢/喜欢帖子的功能 帖子来自各种来源,包括外部来源,因此为了回答这个问题,让我们假设Youtube视频和文章 由于帖子来自各种来源,不一定存储在本地数据库中,因此这些“like”存储在两个表中 表1是一个“Like Resource”表,它存储了帖子类型,例如“video”,以及它的标识符,例如“2DFlghK1iuZz”,如下所示: TABLE `likes_resourc

我正在构建一个与Twitter用户界面非常相似的应用程序,包括使用react for the client和API端点来喜欢/喜欢帖子的功能

帖子来自各种来源,包括外部来源,因此为了回答这个问题,让我们假设Youtube视频和文章

由于帖子来自各种来源,不一定存储在本地数据库中,因此这些“like”存储在两个表中

表1是一个“Like Resource”表,它存储了帖子类型,例如“video”,以及它的标识符,例如“2DFlghK1iuZz”,如下所示:

TABLE `likes_resources` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `type` varchar(255),
  `identifier` varchar(255) 
)
TABLE `likes` (
  `like_resource_id` int(11),
  `user_id` int(11)
)
表2是实际的like表,根据资源和用户存储,大致如下:

TABLE `likes_resources` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `type` varchar(255),
  `identifier` varchar(255) 
)
TABLE `likes` (
  `like_resource_id` int(11),
  `user_id` int(11)
)
此设置对于喜欢和不喜欢帖子以及按帖子或用户列出喜欢的内容都非常有效

我正在努力解决的是,在查看主提要时,最有效的方法是突出显示用户喜欢哪些帖子,它可以无限滚动,就像推特提要一样,而不必拉回用户喜欢的所有帖子的潜在巨大列表,并将其与提要中当前可见的帖子进行比较

我最初的想法是将当前可见的提要项的列表发布到API端点,然后该端点返回一个列表,其中列出了从该列表中得到的所有喜欢的提要项,以便可以将它们高亮显示


这似乎是实现此功能的合理方式,还是有更好的方式?

Left join是您的朋友

Select likes_resource.*, likes.user_id FROM likes_resource LEFT JOIN likes ON likes_resource.identifier = like_resource_id and user_id = @current_user_id

只要联接找到匹配项,它就会引入并填充user\u id字段。如果用户id为空,则表示用户不喜欢它,您不应该突出显示它。

感谢您的回复。这个答案验证了我的方法,我只是想知道是否有更好的方法我想不出来。总是有更好的方法:-)这种方法会一直有效,直到它不起作用。