在我的应用程序(ZF2 + Doctrine)中,我必须使用两个独立的数据库来存储车辆的技术数据。这两个数据库具有相同的结构,但数据来自不同的国家。
使用一组实体但连接到由车辆来源选择的不同数据库的最佳方法是什么?
例如,如果车辆来源是英国,则使用DB1,如果德国使用DB2。
发布于 2015-05-01 03:27:12
如果您有两个具有相同结构的数据库,通常最好合并它们,以减少维护工作量,并避免以不同的方式维护它们。
但是,如果您确实需要保持数据库的分离,则可以考虑Multiple Table Inheritance (或Class Table Inheritance)对您是否是一个好的解决方案。
我使用多表继承来管理日历事件。每个日历事件都有开始日期、开始时间、结束日期和结束时间。对于多表继承,只有一个表(类),每个事件对应一行,所有事件通用的每种数据类型对应一列。然后,有一组表,用于唯一类型的事件和仅对这些事件通用的唯一类型的数据。除了我的主要“事件”表之外,我可能还有一个“会议”表,一个“午餐”表和一个“旅行”表。唯一表中的数据通过Events表中的鉴别器列映射到Events表,该列告诉Doctrine该事件与哪个唯一表关联。
多表继承背后的理论并不真正符合您正在尝试做的事情,因为它的目的是组合具有不同结构的数据集,而不是具有相同结构的数据集。但是,它为您提供的是将表中的数据组合在一起的机会,无论出于何种原因,这些表都希望保持独立。如果需要的话,它还可以让您灵活地更改两个表的结构。
https://stackoverflow.com/questions/29915458
复制相似问题