我有一个包含3个表的数据库。 person
,player
和coach
。 person
表包含player
和coach
有共同之处,如firstName
,lastName
和email
。然后,player
和coach
表格会返回person
表格,其中包含personId
字段。每个访问该网站的人都有一个person
条目。此外,某些用户还可能有player
或coach
条目。数据库被设置为这种方式来维持标准化。PHP mySQL从子类构造父数据
在我的代码中,我有一个person
,player
和coach
类。 player
和coach
继承自person
。以下是person
和player
类的截断版本。
class person{
private $firstName;
private $lastName;
public function __construct($firstName, $lastName){
$this->firstName = $firstName;
$this->lastName = $lastName;
}
}
class player extends person{
private $position;
private $jersey;
public function __construct($firstName, $lastName, $position, $jersey){
parent::__construct($firstName, $lastName);
$this->position = $position;
$this->jersey = $jersey;
}
}
作为一个单挑我对OOP很新,所以如果有些事情我不知道。
(方的问题,什么是考虑上述类,有何看法?)以填充这些我用我的理解是模型类
现在(是吗?)。
class personModel{
public function getPerson($personId){
$sql = "SELECT * FROM `person` WHERE `personId` = '$personId'";
//skipping some sql stuff in here
return new person($sql['firstName'], $sql['lastName']);
}
}
但是现在我的问题的核心是如何实施playerModel
?
class playerModel{
public function getPlayer($playerId){
//would I do a join SQL here?
//or would I call personModel::getPerson()
//or do both these options couple the two classes too tightly?
}
}
请问某种factory
类是另一种选择吗?如果是这样,那将如何完成?
我需要能够构建person
,player
和coach
对象,因为我有会陷入所有这些类别的用户。
任何反馈意见,非常感谢,我会经常检查回来,如果我需要澄清任何事情。