【发布时间】:2019-06-02 07:41:40
【问题描述】:
我正在构建一个应用程序,其 UI 与 Twitter 非常相似,包括点赞/收藏帖子的功能,使用客户端和 API 端点的反应。
帖子来自各种来源,包括外部来源,因此就这个问题而言,让我们说 Youtube 视频和文章。
由于帖子来自多种来源,不一定存储在本地数据库中,这些“喜欢”存储在两个表中。
表 1 是一个“Like Resource”表,用于存储帖子类型,例如'video' 及其标识符,例如'2DFlghK1iuZz',如下所示:
TABLE `likes_resources` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(255),
`identifier` varchar(255)
)
表2是实际的like表,针对资源和用户进行存储,大致如下:
TABLE `likes` (
`like_resource_id` int(11),
`user_id` int(11)
)
此设置适用于喜欢和不喜欢帖子以及按帖子或用户列出喜欢的内容。
我正在苦苦挣扎的是,在查看主要提要时突出显示用户喜欢哪些帖子的最有效方式,该提要像 Twitter 提要一样无限滚动,而不会拉回潜在的巨大列表一个用户,并将其与提要中当前可见的帖子进行比较。
我最初的想法是将当前可见的提要项目列表发布到 API 端点,然后返回该列表中所有已被喜欢的项目的列表,以便它们可以突出显示。
这似乎是实现此功能的合理方法,还是有更好的方法?
【问题讨论】:
标签: php database rest api architecture