2011-12-07 71 views
0

我一直在思考/研究处理我的实体日期和ORM工具一起使用的最佳方法。目前我正在使用Doctrine2(php 5.3)和一个MySQL驱动程序(如果有人需要知道)。使用ORM设置数据库日期

所以我的情况如下:我有一个系统跟踪协作分包商的WorkOrders和他们的发票。因此,WorkOrder可能会有多个由相同/不同分包商提交的发票,这些发票将汇总给定的支付期限。该金额支付给分包商。我的问题是,处理提取发票的最佳方法是什么,这些发票属于具体的支付期限或任何日期范围?作为一个例子,我有一个表格显示一年中每个星期的每个分包商的总计,但是我也显示了一个月的总计等。另外,我有一个日历视图,显示按日和星期汇总的相同发票。

目前,我将一个日期范围(fromDate/thruDate)与一个配置为迭代结果集并根据不同标准(例如时间单位)合成集合的类来聚合结果和一个计算器来处理基于用户角色和/或发票类型的发票。这种方式到目前为止似乎非常灵活,但是我关心的是读取10,000个发票时的性能影响,让学习对象保存水分,迭代结果集,然后在我的视图中再次迭代显示。我想我可以通过查看定制的水化器来消除一步迭代结果步骤。

我也一直在考虑设置一个实体,每个日期从系统的“起源日期”到相关的当前/未来日期,并且关系为几周/几个月/季度/年,这将节省我的麻烦从结果集中形成我自己的集合。这种方法看起来好像特别好,因为当我通过一个日期范围来获取要在日历上显示的发票时,我必须找到并传递日期和thruDate,这往往会延伸到前几个月和未来几个月,因为周总计。我开始更多地倾向于这种方法,但是我开始实施时会有一种感觉,那就是我会开始遇到问题。

所以现在足够啰嗦,我会问。任何人都可以给我任何指示/技巧/经验教训/阅读材料/等...在这个问题上。

谢谢你的时间。

+0

tl; dr对不起,这是什么问题? – PiTheNumber

回答

3

当您需要使用个人发票时,一个想法可能是在显示数据时以水合物的形式提供水分,并且只能水合到物体中。

另一种方法可能是限制返回到分页列表中的实体数量,以确保您已知最大数量的对象被返回。

希望可以帮到

+0

我曾想过保湿阵列,但定价/成本核算逻辑位于发票的不同子类中。我想我可以将逻辑移动到另一个类中,只需传入一个数组,但说实话,我宁愿将所需的逻辑复制到sql中,然后返回已计算的结果集。 – John

+0

您可以在这些类中使用静态方法,该方法根据数组中的值返回结果。你的情况会起作用吗? –

相关问题