我有一个包含书目条目的表,带有一个 bibID 主键。我还有一个表,其中包含一个类别列表,可以使用 categoryID 主键将这些类别分配给引用书目条目。一个表将这两个表链接为 bibID:categoryID,以便每个 bibID 可以与多个 categoryID 相关联。
与书目条目关联的类别可以通过带有代表所有可能类别的复选框的表单进行编辑。
更新这种关系最有效的方法是什么?我可以只从与条目相关联的链接表中删除所有关系,然后重新插入表单所说的任何内容,但这似乎效率不高。
最佳答案
效率是一个模糊的术语。它对不同的人可能意味着不同的事情。
但在大多数情况下,它表示“性能”,所以我假设这就是您现在的意思。
我怀疑现实情况是这是最有效(性能)的方式。
其他方法可能看起来更优雅,因为它们将保留现有数据,只添加缺失的数据,但它们将(可能)需要更多的数据库访问和(肯定)更复杂的 SQL。一个用于删除的数据库调用和一个用于添加的数据库调用应该可以解决问题。
唯一的异常(exception)可能是有大量条目且更改很小(或可忽略不计)的情况。在这种情况下,您可能需要重新考虑。
关于MySQL更新 'categories'链接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114666/