我有 3 个表/模型,其关系如下图所示:
Account
|
----------
| |
User Company
它们都由帐户的主键连接,并且用户和公司各自具有非常不同的方法和字段集。
假设我只知道“帐户ID”,并且我需要加载一个帐户,我假设以下是一个好的程序?
- 帐户模型通过 ID 加载
- 然后确定“帐户类型”
用户或公司对象被加载到帐户对象本身中。它可以像这样使用:
$account->company->company_name();
不知何故,这似乎不是很有效......有人可以提出更好的建议吗?
最佳答案
可能最好让用户和公司都扩展帐户,并且父类帐户不知道子类(只有子类应该知道父类),因此当您需要添加更多帐户子类时,您不需要不需要更改帐户中的任何内容:
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
}
}
关于php - PHP中如何处理不同的账户类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7521737/