假设我有一个简单的数据库,其中包含 3 个表 = posts、categories 和 post_category(即数据透视表)。
- 帖子 - ID |标题 | body |创建位置/更新位置
- 类别 - ID |名称 |创建位置/更新位置
- post_category - post_id |类别_id
主键是一个ID,但我没有指定外部键(在帖子中)。我应该将外键(category_id)指定为帖子表中的一列,还是可以使用我已经指定了这两个表之间关系的数据透视表(post_category)?
提前致谢!
最佳答案
SQL 不需要显式声明外键,特别是在查询表时。外键强制关系完整性。也就是说,它们确保应该相互引用的表实际上确实相互引用。
也就是说,MySQL 与大多数数据库的不同之处在于实际上使用外键声明执行某些操作:MySQL 构建二级索引。通过提高性能,该索引对于查询来说非常方便。
但是,对于外键关系,没有任何要求。
关于mysql - 使用数据透视表时我真的需要外键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47664676/