【发布时间】:2012-05-05 13:15:27
【问题描述】:
我有一个多对多关系,用 MySQL 中的关联表实现。我有一张儿童桌和一张父母桌。一个孩子可以有多个父母,他们的 ID 保存在 parent_child_link 关联表中。
子项可以通过 HTML 表单更新,父项在 HTML 多选中。现在我需要更新数据库中的记录,但是我的解决方案效率不是很高。这是我所做的伪代码:
- 更新child_id=x的子信息
- 删除 parent_child_link 中 child_id=x 的所有当前关联
- 插入新的关联
这个解决方案效果很好,但是当父母没有改变时,例如只更改了孩子的名字,然后执行了 2 个不必要的查询。我怎样才能避免那些不必要的查询?有没有办法检查多选中的父母是否没有改变?
当然,我可以忽略所有这些麻烦,因为它已经有效,但我真的希望尽可能保持高效。
【问题讨论】:
标签: php mysql many-to-many