【问题标题】:SQL queries or object-oriented design?SQL 查询还是面向对象的设计?
【发布时间】:2014-07-05 14:46:01
【问题描述】:

我正在从事一个大型网站项目。目前该网站已设置,以便对数据库进行 SQL 查询以操作它们(例如,如果您想将用户添加到 user 表中,您将进行 INSERT 查询)。

我正在考虑将结构更改为更面向对象的设计。因此,可能存在用户类或产品类。然而,在这种结构中,数据仍将存储在数据库中,因此拥有例如 User 类(保存每个用户的个人信息)几乎没有意义。像这样的面向对象设计与基于 PHP-MySQL 的大型网站有什么好处?

如您所见,我是构建大型网站的新手。基于 PHP-MySQL 的网站的行业标准是什么?常见的做法是什么?

【问题讨论】:

  • 您应该考虑使用 PHP 框架,例如 Laravel、CodeIgniter 等来为您处理这些事情。接下来,拥有反映数据库的类的好处是便于管理,并且使用类,您可以在代码中传递该对象,并且您将知道该对象包含数据库中的值。
  • 感谢@kennypu 的回复!那么用户对象是否会在每次被要求提供信息时只查询数据库(例如$u->GetName();)?
  • 不,那样效率很低。它的工作方式是说你使用$u = new User($uid)之类的东西创建一个新的用户对象,构造函数将查询数据库并获取所有用户信息,所以稍后在你的代码中你可以只做$u->name,它已经有了名字,它就不会不断地查询数据库了。
  • 哦,我明白了。但是为了保存对字段的修改,您必须执行$u->Save(); 之类的操作,对吗?

标签: php mysql database oop object-oriented-database


【解决方案1】:

您所指的是对象关系映射 (ORM)。 我建议 Laravel 的 Eloqent http://laravel.com/docs/eloquent。 但是还有很多其他的不需要框架。

【讨论】:

    猜你喜欢
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多