尝试制作Reddit的ER图

Attempt to make ER diagram of Reddit

我正在尝试设计 Reddit 的 ER 图作为项目的一部分。

我主要需要 post 和评论方面的帮助。

在我看来,posts 和评论有几个共同的属性和关系,所以我尝试创建一个名为 Thread 的 parent 实体作为 EER 图。一条评论链接到另一条评论或 post。因此 'points to' 的关系连接到 Thread 实体。

评论和post共同的其他关系是与Report的关系,与Award的关系。等等

另一种选择是将 Post 和 Comment 分开,并一起摆脱 Thread 并单独建立关系。 我的疑问是,这是正确的吗?或者这是我们能做到的最好方法吗?

更新图:

在你的图表中看起来没有任何东西依赖 CommentPost。我的意思是没有添加关系:Many Comment have One PostOne Post have Many Comment。因为我假设 Comment 只存在于 Post 上。如果 Post 被删除,所有 Comment 也会被删除。也许你应该依靠他们 ManyToOne, OneToMany 关系。

我认为您使用的继承没有指定我上面提到的关系。您实际上或多或少只是将继承用作公共属性的提供者。我不确定这是好事,因为实际上 Post 会继承 points to.

的关系

通过使用这个继承你说:

  • 一个 Post 或一个 Comment 与 OneToMany Comment 有关(<== 你应该使用零或多);

也许为了简单起见,您应该这样做:

  • Post ZeroToMany Comment(零个或多个)
  • CommentOneToOnePost(唯一一个)
  • Comment ZeroToMany Comment(自参考)
  • Comment ZeroToMany Comment(自参考)

我试着说明我在想什么:

此外,您需要这个 VOTE 实体来跟踪哪个用户对贡献投了赞成票或反对票。

请注意,我并不真正了解 Reddit,所以我依赖堆栈溢出 post 和评论系统。