Laravel single vs multiple controllers & db row vs column

时间:2016-05-11 11:32:10

标签: php mysql database laravel model-view-controller

  1. Suppose 20 thousand people each day use my laravel app. I have created One controller that contains about 200 methods. On the other hand I have created 20 controllers with 10 methods each. Which one is a better approach and does it affect the app's performance?
  2. Suppose I want to store 5 portfolio image of each user. I can think of 2 ways. One is inserting one row for each portfolio image on a table-> contains id | user_id | portfolio other is creating 5 columns like -> id | user_id | portfolio_1 | portfolio_2 | ... etc which one is a better approach?

2 个答案:

答案 0 :(得分:0)

一般来说,拥有200种方法的控制器太多了......考虑SOLID的SRP(单一责任)原则。

通常情况下,正确地规范化数据库要好得多,而不是为每个投资组合设置编号列......当有人想要添加比编号列更多的投资组合时会发生什么?使用编号列会限制您,迫使您在决定增加数据库结构时更改数据库结构;正确规范化的数据库不会限制您,不需要更改代码或数据库(除了可能的配置设置)

答案 1 :(得分:0)

对于每次调用200方法控制器,php语法解析器必须解析整个控制器。对于20方法控制器语法解析器解析的代码量较少,因为我们通常一次调用一个控制器。

对于存储第一种方法的投资组合图像,如果更优选的话。 因为在为第一种方法显示它们时,您可以迭代$ user-> portfolio()并在html中显示它们。

但是对于第二种方法,你必须写几乎相同的html 5次。对于第一种方法,您也可以随时增加投资组合图像的数量。