我有两种物品:预订和退款(它们完全不同) 我需要在一个列表中显示它们 - 按创建时间排序 此外,我将不得不导出到Excel - 所以我需要生成数百万行的列表。
使用Doctrine 2存储它们的最佳方法是什么:
答案 0 :(得分:0)
对于你遇到的问题,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