首页 > 解决方案 > 哪种方法更好地将数据存储在数据库中并建立一对多关系?

问题描述

我有一个问题,我正在研究在数据库中存储数据的不同方法..并且无法确定哪个更好。例如,我们正在制作多用户博客网站,并希望存储帖子数据并将其与作者(用户)作为一对多关系。

  1. 第一种方法是制作两张桌子

    • 邮政:

      • post_id
      • 帖子标题
      • post_body
      • 用户身份
      • post_timestamp
    • 用户:

      • 用户身份
      • 用户名
      • 用户电子邮件
      • 用户密码
      • 用户时间戳
  2. 第二种方法是制作3张桌子

    • 邮政:

      • post_id
      • 帖子标题
      • post_body
      • post_timestamp
    • 用户:

      • 用户身份
      • 用户名
      • 用户电子邮件
      • 用户密码
      • 用户时间戳
    • post_user:

      • post_user_id
      • 用户身份
      • post_id
      • 用户时间戳

那么哪种方法更高效更专业呢?

标签: mysqldatabasesqlitedatabase-design

解决方案


One:many -- id"one" 位于 "many" 表中,并已编入索引。在您的示例中,user_id将在 table 中Posts

Many:many -- 这是一个带有成对 id 的额外表。(例如:很多学生上很多课。)更多讨论:http: //mysql.rjweb.org/doc.php/index_cookbook_mysql#many_to_many_mapping_table


推荐阅读