我有以下实体:
作者:ID,姓名
文章:ID,标题,内容,杂志_Id
作者文章:Author_Id,Article_Id
杂志:我,标题
作者 - 文章是多对多的。
获取作者文章发布的所有杂志列表的最有效方法是什么,知道作者.Id。
有没有比这更好的设计方案?
目前我首先从中选择所有文章和选择DISTINCT Magazine_ID。
我正在使用Symfony2和Doctrine,所以也欢迎任何具体的事情。
答案 0 :(得分:0)
在一个选择中执行:
Select distinct m.title from
author,
AuthorArticle,
Article,
Magazine
where
author.id = AuthorArticle.Author_Id
and
Article.id = AuthorArticle.Article_Id
and
Magazine.id = Article.Magazine_Id
and -- at least
Author.id ='my id'
EDIT / APPEND(有比这更好的设计选项吗?)
设计没问题,如果artikel可以有多个autor
作为命名设计建议:
将您的密钥命名为等号,即:
Author: author_ , Name
Article: artikel_, Title, Contents, Magazine_
AuthorArticle: Author_, Article_
Magazine: Magazine_, Title
这有助于您防止拼写错误并相互选择错误的ID,从author_
选择magazine
时会出错,但如果您只是加入id
则不会