Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 sql连接还是调用其他模型?_Php_Oop_Model - Fatal编程技术网

Php sql连接还是调用其他模型?

Php sql连接还是调用其他模型?,php,oop,model,Php,Oop,Model,我有两个表(item和category,我认为它们代表了它们自己)和两个关联的模型对象。在从数据库中获取1项的函数中,我面临一个设计决策。我还需要这个方法来返回项目的类别(名称,而不仅仅是id) 我有两个选择: 在项目模型中,使用SQL联接以更快地获取数据 在item模型中,调用category模型来获取数据,以获得更好的代码 我该怎么办?在任何情况下,我都需要一个类别模型,因为我还将显示一个类别列表等。在不知道更多细节的情况下,如果这是应用程序速度关键的部分,我倾向于第一个选项。只要确保代

我有两个表(item和category,我认为它们代表了它们自己)和两个关联的模型对象。在从数据库中获取1项的函数中,我面临一个设计决策。我还需要这个方法来返回项目的类别(名称,而不仅仅是id)

我有两个选择:

  • 在项目模型中,使用SQL联接以更快地获取数据
  • 在item模型中,调用category模型来获取数据,以获得更好的代码

我该怎么办?在任何情况下,我都需要一个类别模型,因为我还将显示一个类别列表等。

在不知道更多细节的情况下,如果这是应用程序速度关键的部分,我倾向于第一个选项。只要确保代码得到了很好的注释。如果你有速度,而且两次执行的时间没有太大差别,我会执行第二次。因为当你在两年后再来看它时,你会发现,为什么商品模型会以其他方式提取类别信息,这就没有什么意义了。

我也遇到了一个问题。。。总的来说,我发现如果你想要表现,你应该加入。如果速度不是问题,请选择第二个问题。

如果仍要获取类别,那么为什么不保存/缓存它,并使用相同的对象来查找类别名称,而不是sql联接。在这种情况下,sql连接会更快的论点现在在某种程度上可以忽略不计


除非数据量巨大,速度至关重要,否则我可能会选择您最喜欢维护的任何方法。

如果需要,您可以随时进行优化。在许多情况下,第二次选择的开销可以忽略不计

你的时间不是那么微不足道。也不是由谁(你?其他人?)维护代码的时间

干净地编写代码,调用类别,如果结果是“太慢”,则更改它

过早优化是万恶之源