MySQL更新 'categories'链接表

标签 mysql many-to-many

我有一个包含书目条目的表,带有一个 bibID 主键。我还有一个表,其中包含一个类别列表,可以使用 categoryID 主键将这些类别分配给引用书目条目。一个表将这两个表链接为 bibID:categoryID,以便每个 bibID 可以与多个 categoryID 相关联。

与书目条目关联的类别可以通过带有代表所有可能类别的复选框的表单进行编辑。

更新这种关系最有效的方法是什么?我可以只从与条目相关联的链接表中删除所有关系,然后重新插入表单所说的任何内容,但这似乎效率不高。

最佳答案

效率是一个模糊的术语。它对不同的人可能意味着不同的事情。

但在大多数情况下,它表示“性能”,所以我假设这就是您现在的意思。

我怀疑现实情况是这是最有效(性能)的方式。

其他方法可能看起来更优雅,因为它们将保留现有数据,只添加缺失的数据,但它们将(可能)需要更多的数据库访问和(肯定)更复杂的 SQL。一个用于删除的数据库调用和一个用于添加的数据库调用应该可以解决问题。

唯一的异常(exception)可能是有大量条目且更改很小(或可忽略不计)的情况。在这种情况下,您可能需要重新考虑。

关于MySQL更新 'categories'链接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114666/

相关文章:

mysql - 使用 n :m-relation 复制数据集

php - MySQL建表后添加表引用约束

MySQL 多对多查询

Symfony Doctrine - 在多对多关系中,为什么补丁在一个方向上工作而不是在另一个方向上工作

php - 使用 Laravel 数据未保存在数据库中

python - MySQLdb 连接问题

php - 从 MySQL 创建 Excel 文件

php - 使用MySQL和PHP生成HTML网页时出错

mysql - 多对多数据库建模问题

php - 导入 Excel 文件时 MySQL 中出现语法错误 #1166 - 列名不正确