Я не думаю, что STI - правильный выбор для вашей проблемы, так как это больше похоже на отношения «многие ко многим».
Ваш вопрос слишком широк, чтобы дать вам точный ответ.В зависимости от ваших потребностей у вас может быть несколько вариантов.
Например, если Customer
/ Supplier
означает наличие дополнительных данных, было бы лучше сделать их отдельными объектами, связанными с Account
.Таким образом, в вашем приложении вы узнаете, является ли Account
Customer
или Supplier
, проверив, существует ли соответствующий связанный объект.Таким образом, вы можете объяснить это как
Account
может иметь Customer
или Supplier
профиль
о чем-то вроде этого, вместо
Account
может быть Customer
или Supplier
Другое решение будет рассматривать его как простой ACL, где Account
является субъектом, а Customer
и Supplier
- роли.
Трудно дать более подробный ответ на ваш вопрос.