【发布时间】:2012-07-15 18:51:10
【问题描述】:
假设我有两个模型:
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;
}
我仍在寻找答案,但如果您能以我的方式发送链接,将不胜感激。
【问题讨论】:
-
我同意。不过,不确定这对您意味着什么。
-
/* @var ..评论用于自动记录。 PHPDoc 之类的工具可以扫描您的代码并为您生成 API 文档。一些 IDE 也使用它来生成代码完成提示。
标签: php oop model-view-controller join