我知道这对我们互联网上的所有人都是一个多余的问题。但是我想对定义数据库关系有一个简单明了的解释。
- 数据库关系应该取决于操作吗? (用户可以创建帖子,用户可以喜欢帖子,等等。)
- 数据库关系应取决于相关实体。 (一个事件有很多帖子,每个事件都与很多帖子和喜欢项相关联。用户在一个事件中有一个帖子)
答案 0 :(得分:1)
这不是一个多余的问题。通常对数据模型,尤其是实体关系模型了解得很少,大多数在线教程,博客文章和产品文档充其量只包含一半。
关系用于记录人或系统需要跟踪的任何关联。这里的重点是知识,数据库用于记录,操纵和导出个人或系统感兴趣的信息。关系不过是涉及一个或多个实体的事实。
您的系统是否需要记住允许哪些用户创建帖子或类似帖子,或者哪些用户实际上做了这些事情(以及他们将其发布到哪些帖子)?是否需要知道哪些帖子属于哪个事件,哪个用户在哪个事件中拥有哪个帖子?所有这些都是有效的示例。
基本上,任何带有占位符的句子都是谓词,例如用户[user_id]喜欢帖子[post_id] 。当用值替换占位符时,您将获得一个个体关系,也称为命题或事实。通常使用“关系”来表示关系集,即具有相同谓词语句的任意数量的单个关系,这就是数据库中的表所表示的。
请注意,关系不由数据库中的外键约束表示。这是一个常见的误解,通常是在网上传播的,即使是应该更了解的流行DBMS供应商也是如此。