首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原则继承和MySQL连接表限制

原则继承和MySQL连接表限制
EN

Stack Overflow用户
提问于 2014-01-13 00:29:20
回答 1查看 282关注 0票数 0

我对mysql的61个join表限制有问题。我有57+不同的类扩展基类,其中包含了评论,喜欢,标签的关联。当我得到最多的评论时,MySQL崩溃了。规则必须连接整个鉴别器映射和注释本身以及按计数排序(注释)。

有没有办法解决这个问题?

有没有其他方法可以实现对不同类型实体的注释,而不需要继承和重新复制相同的关联?

以下是实体的示例模式。当我想添加带有注释的新实体类型时,likes我只是扩展BaseClass来接收这些功能。

EN

回答 1

Stack Overflow用户

发布于 2014-01-13 01:21:08

如果我没理解错的话,你要做的是拥有许多不同的实体类型,这些实体类型是可以被注释的。

要做的第一件事是从Doctrine后退一步,并讨论实现这一点所需的最简单的表结构。

类似这样的内容可能就足够了:

评论

代码语言:javascript
复制
 _______________________
| id | type | entity_id |
 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

在Doctrine中,为了方便起见,在基类中有双向关系是很好的,但有时它们不是最好的选择。根据实体类型和id直接在comments表上执行查询可能会简化您的体系结构。

您可能还希望考虑删除基类,并使每个实体成为独立实体。

由于博客文章可以存在于没有评论的上下文中(例如,在不允许评论的博客上),那么$blog->getComments()就没有多大意义了。

进行此更改时,您可以执行以下操作:

代码语言:javascript
复制
$comments = $commentsRepository->findCommentsForEntity($entity);
$commentsCount = count($comments);

存储库可以生成所需的查询,将实体作为entity_id参数传递,并根据实体类型设置所需的注释类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21077161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档