我有两种对象:预订和退款(它们完全不同)。
我需要将它们显示在一个列表中 - 按创建时间排序。
此外,我必须导出到 excel - 所以我需要生成数百万行的列表。
使用 Doctrine 2 存储它们的最佳方法是什么:
- 我应该使用类表继承吗?(所以 Booking 和 Refund 扩展了一些只有 $id 和 $creation_time 属性的类)
- 我应该使用单表继承吗?(因此所有预订和退款数据都存储在一个表中)
- 还有什么?
我有两种对象:预订和退款(它们完全不同)。
我需要将它们显示在一个列表中 - 按创建时间排序。
此外,我必须导出到 excel - 所以我需要生成数百万行的列表。
使用 Doctrine 2 存储它们的最佳方法是什么:
对于您遇到的问题,CTI 和 STI 之间没有真正的区别。但是你的假设有点不对劲。如果对象有共同点,你应该继承它们,但你说它们是完全不同的——确保它们确实以合乎逻辑的方式共享一些点。
尽管如此,教义继承有其缺点,请确保在开始之前了解它们。
另一种选择是,如果它是单个查询,则只考虑一个 UNION。这样,您可以从两个表中获取内容,使它们共享相同的界面。尽管您需要使用本机查询。
SELECT id, price, whatever, 'booking' as type FROM booking
UNION
SELECT id, price, whatever, 'refund' as type FROM refund
ORDER BY created