【问题标题】:Setting up database dates with ORMs使用 ORM 设置数据库日期
【发布时间】:2012-01-14 23:27:11
【问题描述】:

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

所以我的情况如下:我有一个系统可以跟踪来自合作分包商的 WorkOrder 及其发票。因此,WorkOrder 可能有许多由相同/不同分包商提交的发票,这些发票将在给定的支付期间汇总。这笔款项将支付给分包商。我的问题是处理获取属于特定支付期/或任何日期范围的发票的最佳方式是什么?作为一个例子,我有一个表格,显示一年中每个星期的每个分包商的总数,但我也显示一个月的总数等。此外,我有一个日历视图,它显示按天和周聚合的相同发票。

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

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

现在已经够啰嗦了,我就问问。谁能给我关于这个主题的任何指示/提示/经验教训/阅读材料/等。

感谢您的宝贵时间。

【问题讨论】:

  • tl;dr 抱歉,有什么问题?

标签: php database database-design orm doctrine-orm


【解决方案1】:

一个想法可能是在显示数据时将其合并为一个数组,并且仅在您需要处理单个发票时才将其合并为对象。

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

希望有帮助

【讨论】:

  • 我考虑过水合到阵列,但定价/成本计算逻辑在发票的不同子类中。我想我可以将逻辑移到另一个类中并传入一个数组,但老实说我宁愿将所需的逻辑复制到 sql 并返回一个已经计算好的结果集。
  • 您可以使用这些类中的静态方法,这些方法根据数组中的值返回结果。这对你有用吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-13
相关资源
最近更新 更多