2011-12-07 4 views
0

ORMツールと連携してエンティティの日付を処理するための最良の方法を検討しています。現在、私はDoctrine2(PHP 5.3)をMySQLドライバで使用しています(もし誰でも知っていなければならないなら)。ORMを使用してデータベース日付を設定する

私の状況は次のとおりです。私は、協力会社の協力会社からWorkOrdersとその請求書を追跡するシステムを持っています。したがって、WorkOrderは、同じ/異なる下請け業者によって提出された多数の請求書を、所定の支払期間に集計することがあります。この金額は、外注先に支払われます。私の質問は、特定の給与期間に該当する請求書の取り引きやその日付範囲を扱う最良の方法は何ですか?一例として、1年ごとに各下請け業者の合計を表示する表がありますが、1か月間の合計も表示します。また、同じ請求書を曜日と週ごとに表示するカレンダー表示があります。

現在、私は結果セットを反復し、結果を集計する時間単位や計算の時間単位などの異なる基準に基づいてコレクションを作成するように構成されたクラスとともに日付範囲(fromDate/thruDate)を渡します。ユーザロールおよび/または請求書タイプに基づく請求書。この方法はこれまでのところ非常に柔軟に思えますが、私は1万通の請求書を取って、オブジェクトに水分を補給し、結果セットを反復してから、再度表示するという視点で反復することによるパフォーマンスの影響に懸念しています。私はカスタムヒーターを調べることで結果のステップを繰り返す私の一歩を排除できると思っています。

私はまた、システムの「起点日」から関連する現在/将来の日付までの各日付のエンティティを週/月/四半期/年の関係で設定することを考えています。結果セットから自分自身のコレクションを形成する。この方法は、特に、カレンダーに表示する請求書を取得するための日付範囲を渡すと、fromDatesとthruDateを見つけて渡す必要があります。これは、週の経過合計される。私はこのアプローチにもっと傾き始めていますが、私がそれを実装し始めたら、問題に陥るようになると感じています。

今は十分に散歩していますので、私は尋ねます。誰でも私にこの教科書に何か指針/ヒント/教訓/教材/などを教えてもらえますか?

お時間をいただきありがとうございます。

+0

tl; dr申し訳ありませんが、何ですか? – PiTheNumber

答えて

3

個々の請求書で作業する必要がある場合は、データを表示するときに配列として水和し、オブジェクトに水和させることが考えられます。

もう1つのアプローチは、ページングされたリストに返されるエンティティの数を制限して、既知の最大数のオブジェクトが返されるようにすることです。

希望すること

+0

私は配列に水和することを考えましたが、価格設定/原価計算ロジックは請求書のさまざまなサブクラスにあります。私は、ロジックを別のクラスに移動して配列を渡すことができると思いますが、正直言って、必要なロジックをSQLにコピーして、すでに計算された結果セットを返します。 – John

+0

配列の値に基づいて結果を返すクラス内の静的メソッドを使用できます。それはあなたの場合に働くでしょうか? –

関連する問題