Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除和插入vs更新表上的行_Php_Mysql_Database_Codeigniter - Fatal编程技术网

Php 删除和插入vs更新表上的行

Php 删除和插入vs更新表上的行,php,mysql,database,codeigniter,Php,Mysql,Database,Codeigniter,我有一个web表单,用户可以为单个提供者(IDProvider)选择多个可用项目(idFamilia),如下所示 这些值保存在此表中 ----------------------------- | idProveedor | idFamilia | ----------------------------- | 5 | 1 | ----------------------------- | 5 | 2 | -

我有一个web表单,用户可以为单个提供者(IDProvider)选择多个可用项目(idFamilia),如下所示

这些值保存在此表中

-----------------------------
| idProveedor | idFamilia   | 
-----------------------------
|      5      |      1      |
-----------------------------
|      5      |      2      |
-----------------------------
|      6      |      2      |
-----------------------------
创建提供程序后,可以对其进行编辑,并可以更改为idFamilia选择的值。因此,我有三种不同的场景来描述可能发生的情况:

  • 行数保持不变,我只需要编辑idFamilia的值
  • 一些项目已从选择中删除,我需要搜索表中的值并删除这些行
  • 添加了新项目,我需要插入这些附加值
现在,我正在考虑删除正在编辑的IDProvider的所有行,然后插入新的选择

这是一种好的做法吗?从长远来看,这会影响性能吗


你能推荐一个教程或例子来用另一种方法吗?

我总是会删除并重新创建它们


虽然这增加了一些性能损失,但它使代码易于理解和维护。除非您是Uber、Google、Facebook、Amazon或其他世界级应用程序,否则优化此应用程序所带来的好处远小于成本:开发、调试和维护时间。

更新只会使用较少的处理更新指定字段,与删除/插入相比,如果您计划进行安全性/错误预防等检查,则会有更多的处理和更大的出错空间。您还需要考虑,如果要删除/插入的行的ID有任何依赖于该ID的内容,那么在执行删除和插入操作时,您绝对不会从性能方面获得任何好处。为什么?因为无论是执行删除还是更新,系统都必须找到该行。为什么系统要做这么多的工作却没有明显的好处?嗯,这个表的ID没有任何依赖于它们的东西。我想我最终会做删除插入,我正试图找到一个教程或示例以另一种方式来做。我可能会使用Ajax来添加或删除条目。是的,如果你必须将更新与插入结合起来,这是一件痛苦的事,因为标准的行数在前后不一样。