我是一名学习数据库设计的学生,目前正在学习一对一、一对多、多对多之间的关系。我很好地理解了这个概念,但感觉我缺乏关于如何在实际生产场景中实现它的经验/信息。
我的问题是这样的
如果我有一个博客网站,其中以博客文章为实体,并且每篇博客文章都有评论,您将如何处理数据库中的评论?`
您会使用一对多关系并将所有评论存储在一个表中吗?然后将这些评论链接到每个博客文章和创建它的用户?
如果每个评论都有子评论怎么办?您会为子评论创建一个单独的表并将其链接到单个评论吗?这会导致数据库本身产生过多的开销和混乱吗?
我了解了概念和所有内容,但不了解处理看似基本内容的最佳实践。
提前致谢!
最简单的解决方案是坚持一对多关系。使用一个表并每行存储一条评论,其中包含对帖子和评论作者的引用以及时间戳,以便您可以按时间顺序对评论进行排序。
您似乎不确定是否需要“线程评论”层次结构。这比较复杂,所以如果你不需要它,就不要打扰。
如果您确实需要显示注释线程,那么您应该了解如何在 MySQL 8.0 中运行递归查询:https://dev.mysql.com/doc/refman/8.0/en/with.html#common-table-expressions -递归
你仍然只需要一张桌子。不要为子评论创建第二个表。只需像一对多示例一样存储评论,但每个评论在回复时都可能链接到其“父”评论。
许多网站使用的另一个解决方案是跳过实现自己的评论系统,而只是嵌入像 Disqus 这样的评论服务。这可能比你的更可靠、更安全。但如果您将此作为学习练习,那也是值得的。
我真的很喜欢你的博客,里面有很多信息。我自己也是一个博主,所以应该是 如果您也能查看我的博客,那就太好了。 https://gracefulgaze.online/ 下面是(gracefulgaze)的段落对比
“优雅的目光”是指具有微妙魅力和优雅的眼神。它承载着一种宁静之美,比言语更能传达出一种深度和魅力的感觉。这样的目光,不仅让人着迷,更能触动心灵,给人一种深藏不凡的感觉。