mysql - 哪种方法更好地将数据存储在数据库中并建立一对多关系?
问题描述
我有一个问题,我正在研究在数据库中存储数据的不同方法..并且无法确定哪个更好。例如,我们正在制作多用户博客网站,并希望存储帖子数据并将其与作者(用户)作为一对多关系。
第一种方法是制作两张桌子
邮政:
- post_id
- 帖子标题
- post_body
- 用户身份
- post_timestamp
用户:
- 用户身份
- 用户名
- 用户电子邮件
- 用户密码
- 用户时间戳
第二种方法是制作3张桌子
邮政:
- post_id
- 帖子标题
- post_body
- post_timestamp
用户:
- 用户身份
- 用户名
- 用户电子邮件
- 用户密码
- 用户时间戳
post_user:
- post_user_id
- 用户身份
- post_id
- 用户时间戳
那么哪种方法更高效更专业呢?
解决方案
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
推荐阅读
- html - 使用nodejs时,如何访问根目录之外的文件?
- javascript - 渲染后将视图另存为 html 文件
- c++ - C++ - 通过在控制台中包含它们的路径来读取和写入 csv 文件
- python - 使用 Scrapy 获取页面,执行 JS 并提取变量
- database - Access 数据库引擎和 Microsoft Access 之间的不兼容问题
- sql - 从另一字段的多个值中选择一列的最大值
- python - 如何将 Python 循环处理信息回显到命令行?
- python - 如何使用sqlalchemy orm创建参数“缓存”设置为“无缓存”的oracle序列
- php - PHP for 循环,2 次相同的 id,随机
- python - Keras 模型在训练和验证中获得了很高的准确性,然后在混淆指标上搞砸了