具有不同类型帖子的社交媒体提要的正确数据架构是什么?

问题描述 投票:0回答:0

我正在构建一个有提要的应用程序,提要应该显示不同类型的帖子,按时间顺序,分页。

以 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 };
};

我当然可以将每个不同帖子类型的帖子类型与其他字段合并,以使打字更加清晰,但我的想法是基本上所有内容都在同一个集合下。

这是解决这个问题的最佳方法吗?我觉得它应该可以工作,但它似乎容易出错?希望有第二个意见。

我试图在网上找到关于它的信息,因为我不是第一个处理这个的人,但一直在努力寻找正确的谷歌查询来找到它,因为所有的词都很通用(数据/结构/类型/饲料等)所以一直没有去哪里。

typescript data-structures database-design architecture nosql
© www.soinside.com 2019 - 2024. All rights reserved.