DBA А не имеет никакой свободы внести изменения в модель данных, не вынуждая Вас изменить Ваш скомпилированный код. С хранимыми процедурами можно скрыть эти виды изменений до степени, так как список параметров и набор (наборы) результатов, возвращенный из процедуры, представляют свой контракт, и внутренности могут переехаться, настолько долго поскольку тот контракт все еще выполняется.
я действительно не вижу это как являющееся преимуществом. Способность изменить что-то в изоляции могла бы звучать хорошей в теории, но просто потому что изменения выполняют контракт, не означает, что это возвращает корректные результаты. Чтобы быть в состоянии определить, что корректные результаты - Вы, контекст потребности и Вы получает тот контекст от кода вызова.
Вы можете использовать полиморфную связь .
Ваш банковский счет будет иметь полиморфную связь.
class BankAccount
belongs_to :people, :polymorphic => true
end
А две (или более) другие модели будут иметь полиморфную связь. простое отношение has_many
.
class Member
has_many :bank_accounts, :as => :people
end
Затем в своем банковском счете вы можете использовать @ account.people
, что даст вам либо Участника
, либо Team
, в зависимости от того, что это такое.
А в вашей модели Member
или Team
вы можете получить соответствующий банковский счет с помощью @ member.bank_accounts
.