我有3个表/模型,其关系如下所示:
Account
|
----------
| |
User Company
他们都加入了账户的主要密钥,而用户和公司各自拥有非常不同的方法和领域。
假设我只知道“帐户ID”,并且我需要加载一个帐户,我假设以下是一个好的程序?
将User或Company对象加载到Account对象本身。它可以像这样使用:
$帐户 - >公司 - > COMPANY_NAME();
不知怎的,这看起来效率不高......有人能提出更好的建议吗?
答案 0 :(得分:1)
可能最好让User和Company都扩展Account,并且父类Account不知道子类(只有子类应该知道父类)所以当你需要添加更多的Account子类时,你不要在帐户中需要更改任何内容:
class Account {
var $email;
var $password;
function load() {
// load from db
}
}
class User extends Account {
var $first_name;
var $last_name;
function load() {
parent::load();
// load for this class
}
}
class Company extends Account {
var $company_name;
function load() {
parent::load();
// load for this class
}
}