を呼び出すとどうなります$user->get_email_address()
か?
オプション 1: オンデマンドでデータベースから電子メール アドレスを取得する
public function get_email_address() {
if (!$this->email_address) {
$this->read_from_database('email_address');
}
return $this->email_address;
}
オプション 2: オブジェクトの作成時にデータベースから電子メール アドレス (およびその他のユーザー属性) を取得する
public function __construct(..., $id = 0) {
if ($id) {
$this->load_all_data_from_db($id);
}
}
public function get_email_address() {
return $this->email_address;
}
私の基本的な質問は、データベース クエリの数を最小限に抑えるのが最善か、それともデータベースから転送されるデータの量を最小限に抑えるのが最善かということです。
もう 1 つの可能性は、オブジェクトの作成時に最も必要な属性をロードし、必要に応じて他のすべてのデータを含めることが最善であるということです。
フォローアップの質問: Activerecord のような ORM 抽象化フレームワークは何をしますか?