SQL查询还是面向对象设计?

3

我正在开发一个大型网站项目。目前,网站的设置是通过对数据库进行SQL查询来操作它们(例如,如果您想向user表中添加用户,则应进行插入查询)。

我考虑将结构更改为更具面向对象的设计。因此,可能会有一个Users类或Products类。但是,在这种结构中,数据仍将存储在数据库中,因此拥有例如User类(保存每个用户的个人信息)似乎没有太大意义。使用一个基于大型PHP-MySQL的网站的面向对象设计有什么好处呢?

正如您所看到的,我对构建大型网站的结构还很陌生。基于PHP-MySQL的站点的行业标准是什么?通常的方法是什么?


你应该考虑使用像Laravel、CodeIgniter等PHP框架,这些框架可以为你处理那些事情。接下来,拥有一个反映你的数据库的类的好处是为了方便管理,而且有了一个类,你可以在代码中传递该对象,并且你会知道该对象保存了来自数据库的值。 - kennypu
谢谢您的回复,@kennypu!那么一个用户对象是否每次在请求信息时都会查询数据库(例如 $u->GetName();)? - Leopold Joy
2
不,那会很低效。它的工作方式是这样的,比如你使用类似 $u = new User($uid) 的语句创建一个新的用户对象,构造函数将查询数据库并获取所有用户信息,因此在代码中稍后只需输入 $u->name 即可获取用户名,而不会频繁地查询数据库。 - kennypu
哦,我明白了。但是为了保存字段的修改,你需要做类似于 $u->Save(); 这样的操作,对吗? - Leopold Joy
1个回答

0
你所提到的是对象关系映射(ORM)。我建议使用Laravel的Eloquent http://laravel.com/docs/eloquent。但也有其他许多不需要框架的选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接