mysql - 在 MySQL 中存储多对多关系的最佳方式?

标签 mysql database database-design data-modeling

假设我有一个简单的数据库,其中包含表“posts”和“tags”。帖子可以有很多标签,标签可以属于很多帖子。

构建数据库的最佳方式是什么?我想到了使用列表/序列化:

tags
idx tag_id, str tag_name

posts
idx post_id, str title, list tag_ids

或者有另一个关联表。问题是使用这个我什至不知道如何构建查询以在收到帖子时提取关联的标签名称。

posts
idx post_id, str title

post_tags
fk post_id, fk tag_id

其实我一个都不喜欢。有没有更好的办法?

最佳答案

post_tags 是在数据库中实现多对多关系的正确方法。

我要对您发布的内容做的唯一补充是其中的两列都应该是主键,以确保没有重复项。

关于mysql - 在 MySQL 中存储多对多关系的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3152850/

相关文章:

php - Codeigniter 返回空结果集,但返回 num_rows(5)

mysql - Exim Mysql转发相当于postfix的mysql-virtual-alias-maps.cf

php - mySQl 连接随机用户值

android - 如何使用 Uri 对象打开现有的 SQLite 数据库?

mysql - 通过数据透视表连接两个表并在 mysql 中检索特定结果

关于查找的 PHP mySQL 最佳实践

php - Bootstrap Toggle 使用 AJAX 无需刷新页面即可更改 MySQL TINYINT

mysql - 显示整个月(休息日和事件日)

mysql:如何避免两次保存相同的数据?

c# - 赛事管理应用——如何管理选手和队伍?