mysql - 仅使用一张表来存储多种类型的关系,是否高效?

标签 mysql database database-design

考虑我有一个表名Post,它存储喜欢和评论等。所以我想通过将实际关系存储在单独的列中来共享评论和喜欢的表,示例表:-

帖子

  • post_id
  • post_description

然后是一个关系表:

  • post_has_
    • post_id
    • 用户 ID
    • 关系(字符串:“喜欢”,“评论”,“分享”)等

因此,通过单个表,我们可以存储多个关系,所有关系都可以通过应用程序级别进行管理,不需要创建单独的表,我想知道这是个好主意,还是有人以前这样做过?有什么权衡等吗?

最佳答案

听起来您正在考虑父子表关系,因为一篇帖子可能有多个点赞和评论。

或者,如果您决定变得更高级(更疯狂,哈哈),并且希望能够对评论进行评论,甚至对评论的评论进行评论(即更深入地了解级别),那么您可能想以某种方式使用一张表可以处理所有可能性,例如: 帖子: 帖子编号 parent_post_id_if_applies 帖子描述 用户身份 关系(字符串:“原始”,“喜欢”,“评论”,“分享”)等

也许还有一个级别字段来说明您的级别,例如 1 表示原始帖子,2 表示有关原始帖子的 View 或评论,3 表示有关 #2 的 View 或评论等。

关于mysql - 仅使用一张表来存储多种类型的关系,是否高效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54069582/

相关文章:

mysql - 查询以检查相同的单元格值访问表

PHP Yii 关系 : Movies & cinemas & showtimes

mysql - 无法将 csv 文件导入表中

mysql - 设计一个数据库来处理产品变化的库存跟踪

ruby-on-rails - 唯一索引和标准索引是分开做的吗?

MySQL 语法错误插入

mysql - 避免在 Node js 中的 SQL LIKE 查询中注入(inject)

php - 无法在注册页面上发布错误

sql - 数据库列数据类型

sql - 哪种方法在数据库性能方面更好 - 一个表按操作分组或多个表可序列化事务?