2011-01-25 8 views
3

従業員を追跡するRailsアプリケーションがあります。私たちは、時間の経過とともに雇用歴を追跡したいと考えています。 データベースレコード(雇用)履歴のためのRails設計

  • 彼らの現在の状態(給与、マネージャ、タイトルなど)によって

    1. 検索従業員の特定の日現在の状況によってremployeesの検索を
    2. :私たちは、クエリの次の種類を行うことができるようにしたいのですがこれまでの条件

    にマッチした従業員のための

  • 検索私たちは、大きさのも、多分2桁遅く、著しく遅いという履歴照会を気にしません。

    この履歴は監査証跡とは異なります。監査証跡はデータの履歴であるため、監査証跡には「従業員Xにはどのような給与がY日に保存されたか」が表示されますが、古いデータが間違っている場合はそれを修正してください。

    [我々はまた、監査目的のために監査証跡を使用しているが、私は、ほぼ直交設計要件を提供するなど、監査証跡のためのロジックを考える。]

    は最高のこの種を実装するための既知のデータベース設計パターンがあります歴史?または、さまざまな「明白な」デザインとトレードオフの議論を見つけることができるサイトですか?すべてのRailsプラグイン?

    Rails 2.3.5 with Ruby 1.8.7、それは重要です。

  • 答えて

    1

    私はそれを使用していませんが、paper_trailはこのタイプのバージョン管理をサポートすると主張しています。あなたの要件(1)と(2)を簡単に処理するように思えます。(3)についてはわからないが、モデルとバージョンを同時に検索するクエリを得るためには、

    この履歴は、古いバージョンに変更を行う能力必要があることを意味監査証跡

    異なっている - 私はそれがサポートされている疑いがあり、あなたがまた、必要な場合は、実装することは問題と思われますこれは監査証跡として機能します。

    +0

    ええ、私は監査証跡(システム内のデータの物語の履歴と見ることができます)を探しているのではなく、現在および過去の「実際の」値を追跡するツールを探しています。だから私は "2010年10月15日にJimの給料は何だったのですか?" 「2010年10月15日にデータベースに格納されたJimの給与の値は何だったのですか」特に、過去の期間のデータをインポート、入力、更新できるようにしたいと考えています。 –