【问题标题】:Should i use many to many or one to many relationship for User reviews?我应该对用户评论使用多对多还是一对多关系?
【发布时间】:2021-03-16 22:54:49
【问题描述】:

这是我的思考过程:

如果网站只要求用户以 1 到 5 的等级给电影评分,那么它应该是多对多

但是如果网站允许用户输入更多的字段,比如评论,那么它应该是一对多的,因为评论是为每个用户定制的,它不能分配给其他用户

我说的对吗?

【问题讨论】:

  • 一个用户可以给很多电影评分。一部电影可以被许多用户评分。那是多对多。
  • @GordonLinoff 那么电影和用户之间应该是多对多的关系吗?还是我应该在电影中添加一个字段来表示评分?
  • 只能一个人评价一部电影吗?每个人只能评价一部电影吗?这些是您需要回答的问题,但答案应该很明显。
  • 从这个角度来看是一对一的:用户表、电影表和收视率表。用户只能对一部电影进行一次评分。一部电影每个用户只能有一个评分。一个用户只能为一部电影输入评分。

标签: mysql sql relational-database one-to-many


【解决方案1】:

电影和用户与评论有关系,而不是直接相互。

我应该对用户评论使用多对多还是一对多关系?

因此,要回答这个问题,用户与评论之间存在 零对多 关系,因为他们可能没有评论,而电影与评论之间存在 零对多 关系它可能未经审查。如果您的业务逻辑要求电影有评论或用户至少有一条评论,那么它可以是一对多的。根据这个问题erd-many-vs-zero-or-many-one-or-many-crowfoot-notation,取决于您的设计有多模糊。下图是电影分级系统的示例 ERD,并显示了这些关系。

【讨论】:

  • 我猜应该是“零或多”而不是“零对多”。
猜你喜欢
  • 1970-01-01
  • 2012-01-24
  • 1970-01-01
  • 1970-01-01
  • 2021-08-30
  • 2011-03-30
  • 2015-05-27
  • 2011-06-14
  • 2019-04-14
相关资源
最近更新 更多