我创建了一个表单,允许用户根据需要动态添加任意数量的字段。其中每一个都是分配给设备的库存项目。我有 3 个表,即设备、库存项目,以及第三个将设备与库存项目相关联的表。
当用户保存表单时,他们可能已经删除了现有条目、添加了新条目或保留了一些未更改的条目。我能想到的最好的处理方法是清空所有将设备与项目相关联的表行,并根据表单的输入重写它们。
会有更有效的方法来做到这一点吗?我无法想象转储所有行然后重写它们是最可行的选择。
我创建了一个表单,允许用户根据需要动态添加任意数量的字段。其中每一个都是分配给设备的库存项目。我有 3 个表,即设备、库存项目,以及第三个将设备与库存项目相关联的表。
当用户保存表单时,他们可能已经删除了现有条目、添加了新条目或保留了一些未更改的条目。我能想到的最好的处理方法是清空所有将设备与项目相关联的表行,并根据表单的输入重写它们。
会有更有效的方法来做到这一点吗?我无法想象转储所有行然后重写它们是最可行的选择。
我这样做的方法是将行的 ID 存储在隐藏字段中。
在您的情况下,您可以将第三个表的行的 ID 存储在隐藏字段中。在回发时,删除所有不存在 ID 的行(由用户删除),并使用 ID 更新存在的行。
转储数据更干净、更快捷。然后在他们提交表单时添加新数据。如果您担心按照@djot 的建议在删除和添加之间发生某些事情,请使用事务。
http://dev.mysql.com/doc/refman/5.0/en/commit.html
我已经这样做了很多次,没有任何问题。它消除了根据数据库检查每个条目的所有逻辑。如果没有理由检查,那么只需删除,这样更有效率。