我正在构建一个有提要的应用程序,提要应该显示不同类型的帖子,按时间顺序,分页。
以 Facebook 提要为例,显示:状态更新、图像、视频、民意调查、事件等。所有这些都按时间顺序在提要中滚动。
如果我在我的数据库中创建不同的数据类型和不同的集合,那么我不确定如何有效地查询它们,例如只获取最新的 20 篇帖子,无论它们的类型如何。
我现在能想到的唯一解决方案确实是让它们都是同一类型,并且结构如下:
export type Post = {
id: string;
// Based on the type of the post, we will choose what component to render on the client side
type: "image" | "video" | "status" | "poll" | "event";
created_at: Date;
author: string;
// This is where all the other data about the post is stored. This will be different for every type of post
other_data: { [key: string]: any };
};
我当然可以将每个不同帖子类型的帖子类型与其他字段合并,以使打字更加清晰,但我的想法是基本上所有内容都在同一个集合下。
这是解决这个问题的最佳方法吗?我觉得它应该可以工作,但它似乎容易出错?希望有第二个意见。
我试图在网上找到关于它的信息,因为我不是第一个处理这个的人,但一直在努力寻找正确的谷歌查询来找到它,因为所有的词都很通用(数据/结构/类型/饲料等)所以一直没有去哪里。