如果我有Order
个对象且每个Order
都有Customer
Order
对象应该保留的内容,Customer
对象或客户ID或都?
它是否依赖于上下文,或者因为我们正在处理OOP中的对象,Order
理想情况下应该保存Customer
对象,而不仅仅是数据库列的ID?
感谢。
答案 0 :(得分:2)
不要将db思维与PHP代码设计混合使用。规则属性应该设置为对象本身而不是其id。像这样:
class Order {
/**
* @var Contact
*/
protected $contact;
public function __construct(Contact $contact) {
$this->contact = $contact;
}
}
但有理由说,只需要联系人的ID就可以了。最好的例子是必须从数据库中获取联系人,但是你经常不需要它的信息,期望特殊情况。然后,仅将id作为类属性并在需要时获取联系人可能很有用。 (称为'延迟加载')。请注意,“延迟加载”可能会被框架隐藏在幕后。