Для приложения CRM я хочу иметь возможность ассоциировать модель лица непосредственно с моделью учетной записи или с моделью компании, которая, в свою очередь, связана с моделью учетной записи. Также я хочу связать модель адреса с моделью компании или с моделью лица. Вот что я имею в виду:
class Account
has_many :Persons
has_many :Companies
end
class Person
belongs_to :Account
belongs_to :Company
has_one :Address
end
class Company
belongs_to :Account
has_many :Persons
has_one :Address
end
class Address
belongs_to :Person
belongs_to :Company
end
Таким образом, учетная запись будет либо "учетной записью лица", либо "учетной записью предприятия", в зависимости от ассоциации. Они будут взаимоисключающими. Я планирую, что в таблице "Личные кабинеты" у меня будет информация об иностранных ключах account_id и company_id. Точно так же в таблице адресов у меня будут именные ключи person_id и company_id. Один иностранный ключ будет нулевым в каждом случае.
Это нормально в "Железнодорожнике"? Если нет, то мы будем очень признательны за любые рекомендации.