首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有理论2的多级继承映射

具有理论2的多级继承映射
EN

Stack Overflow用户
提问于 2013-07-18 16:40:52
回答 2查看 2.4K关注 0票数 1

我有三个实体是“可寻址的”(可以有地址):

交货点

Customers

配送中心

每个可寻址的实体也都是可寻址的(具有纬度和经度),但我有一些实体是可地理的,但不能寻址,比如跟踪点路由点( lat和is的有序序列)。

使用理论2(使用Symfony2和YAML映射)实现这一目标的最佳方法是什么(请考虑性能,因为某些表可能有数百万行)?

我的问题是:解决这个问题的最佳方法是什么?映射的超类?单表继承?多表继承?通过阅读教义的文档,我不知道哪一个是最适合这个的。

如果这重要的话,我正在使用PostgreSQL。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-18 17:06:34

最快的选项是根本不使用任何表继承和将所有实体映射到不同的表,但是如果出于某种原因要使用表继承.

单表继承通过体系结构更快,因为查询中的联接较少.请参阅这篇文章以了解表继承的工作原理/外观..。

元数据通常是缓存的,所以在使用映射超类或为每个实体提供完整的映射(从术语上说是干的)之间不会有明显的性能影响。

真正的性能提升将来自于优化查询和缓存这些查询及其结果。

票数 1
EN

Stack Overflow用户

发布于 2013-07-19 21:11:32

在这种情况下,组合肯定比继承更合适。

你用来描述这个问题的语言很有启发性。您将“可寻址”定义为“可以拥有和地址,这与”客户是一种类型的地址“不同。”在后一种情况下,继承更有意义。

零级只是使用关联(地址OneToOne地理定位、客户OneToOne地址、RoutePoint OneToOne地理定位等)。

如果您想对任何有地址的操作执行一组操作,请创建一个名为可寻址的接口,并让您的客户实现它。

如果您运行的是PHP5.4,您可以使用这些特性来实现这些接口。

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

https://stackoverflow.com/questions/17729333

复制
相关文章

相似问题

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