そのため、少し複雑なデータ モデルがあり、それをモデル化する方法を見つけようとしています。
私は持っていClient
ます。それClient
は に属していFirm
ます。
には次のFirm
ような属性があります。
- Firm Size (0.2, 0.4, 0.6, etc.)
- Firm Type (Big, Small, Medium)
- Priority Level (1, 2, 3, 4, 5 - from low to high)
User
has_many Clients
。_
そのユーザーは、各会社の属性を編集できる必要があります。
Firm Size
たとえば、新しいサイズを(たとえば 0.95)に追加します。
それでモデルを作ろうと思ったんFirm
です。次に、各属性のモデルを個別に用意します。そのようにして、ユーザーは会社の規模などに新しいレコードを追加できます。
私が少し混乱しているのは名前付けFirm
です.foreign_idsなどを考えると、それぞれのエントリが少し奇妙に見えませんか? また、データをどのように操作しますか?
たとえば、会社の場合、レコードは次のようになります。
:name => "Firm A", :firm_size_id => 1, :firm_type_id => 2, :priority_level_id => 1
次に、会社の規模を知りたい場合は、次のようなクエリを実行する必要があります。
Firm.find(1).firm_size.size
FirmSize の場合、「サイズ」という属性の名前は何ですか? 私がそれを行う場合、上記のようなRails呼び出しを次のように行いますか?:
FirmSize.find(1).size
それは少し厄介に見えます。それとも、属性に名前を付けますname
か? FirmSize.find(1).name
-しかし、それはそれが何であるかを完全には捉えていません。この場合、それは会社の規模です。
「FirmType」や「PriorityLevel」なども同様です。
次に、もう 1 つの懸念は、これらの属性に対して何らかの計算を実行したい場合、次のような奇妙な体操を行う必要があるのではないかということです。
product = Firm.find(1).firmsize.size * Firm.find(2).firmsize.size
それは少しぎこちないように思えます...それともこれは正常ですか?
私がこれにアプローチする方法を明確にするための助けがあれば幸いです。
ありがとう!