假设我有两个模型:
class Book
{
public $book_id;
public $book_author_id;
public $title;
}
class Author
{
public $author_id;
public $author_name;
}
我习惯写这样的东西:
$DB->query("SELECT book_id, title, author_name
FROM book
LEFT JOIN author
ON book_author_id = author_id
");
假设,我对对此关联进行单独查询不感兴趣。我该如何进行?以下是我听说过的一些事情:
- 创建 JOIN 的 MySQL VIEW
- 创建 VIEW 的模型类
我正在处理的应用程序涉及数十个表,并且在程序代码中进行了高度优化(例如,几乎没有 SELECT * 任何地方)。我正在重构以使其更易于维护(我也是最初的创建者),但我希望能够在需要时灵活地使用连接,而不会影响我的文件和数据库调用的结构。
我的一个可能相关的问题与包含其他模型有关:
class Author
{
public $author_id;
public $author_name;
/* @var Book */ //<--don't really fully understand this but I've seen something like it somewhere
public (array) $authors_books;
}
我仍在寻找答案,但如果您能以我的方式发送链接,将不胜感激。