4

ある学校の料金モジュールを作成しています。料金モジュールを機能させるために、さまざまな種類の料金 (入場料、図書館料金、スポーツ料金など)、さまざまな割引、適用される税金を含む料金テンプレート (構造) を定義したいと考えています。手数料、割引、および税金は、異なるプロパティが含まれているため、異なるモデルとして定義されます。

ここでは、さまざまなモデル...

まずは料金テンプレート

class FeeTemplate < ActiveRecord::Base
    has_many :fee_template_particulars
end

そして、FeeParticulars ..

class FeeParticular < ActiveRecord::Base
    belongs_to :fee_template
    belongs_to :particulars, :polymorphic => true
end

Now 手数料、割引、税モデル

class Fee < ActiveRecord::Base
    has_many :fee_particulars, :as => particulars
end

class Discount < ActiveRecord::Base
    has_many :fee_particulars, :as => particulars
end

class Tax < ActiveRecord::Base
    has_many :fee_particulars, :as => particulars
end

基本的に、FeeTemplateParticular のデータベース テーブルには、料金/割引/税金のタイプと id レコードを格納するタイプ列があります。

私が実装しなければならないシナリオについて、皆さんにいくつか質問したいと思います..

  1. アプローチ (ポリモロヒック) はこの状況に適していますか?

  2. 上記で問題がなく、ポリモーフィックな関連付けが一方向に機能することを知っている場合、私の場合、各タイプの手数料/割引/税金の詳細を手数料の詳細から見つける必要があり、その逆ではありません。それはどのように行われますか?

  3. この問題を解決するより良い方法はありますか。

前もって感謝します。

4

1 に答える 1

1

はい、これは良いです。

has_manyのfield_particularを使用して、さまざまなタイプの詳細を検索できます。あなたは、詳細の異なる振る舞いのために異なるクラスを持つことができるでしょう。これはあなたの問題にとって非常に良いデザインだと思います。

于 2012-04-17T21:15:50.110 に答える