Предположим, следующая схема данных:
Usage
======
client_id
resource
type
amount
Billing
======
client_id
usage_resource
usage_type
rate
В этом примере предположим, что у меня есть несколько ресурсов, каждый из которых можно использовать по-разному. Например, один ресурс - widget
. Widgets
может быть foo
ed, и они могут быть bar
ed. Gizmo
s также может быть foo
ed и bar
ed. Эти типы использования оплачиваются по разным ставкам, возможно, даже по разным тарифам для разных клиентов. Каждый случай использования (ресурса) записывается в таблицу использования. Каждый тариф (для клиента, ресурса и комбинации типов) хранится в таблице счетов.
(Кстати, если эта схема данных не является правильным способом решения этой проблемы, пожалуйста, внесите предложения.)
Можно ли, используя Ruby on Rails и ActiveRecord, создать отношение has_many
из Биллингса в Использование, чтобы я мог получить список экземпляров использования для данного тарифа выставления счетов? Есть ли синтаксис has_many, :through
, который я не знаю?
Еще раз, я могу подойти к этой проблеме с неправильной точки зрения, поэтому, если вы можете придумать лучший способ, пожалуйста, говорите!