Наследование класса / одной таблицы или другой метод? - PullRequest
0 голосов
/ 17 октября 2018

Будет «Учетная запись», которая может быть «Заказчиком», «Поставщиком» или и тем, и другим.Это должен быть как минимум один из них.

Я хочу использовать наследование таблиц классов, но не уверен, смогу ли я иметь учетную запись, которая может быть как клиентом, так и поставщиком.

Кто-нибудь может подтвердить?

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 17 октября 2018

Я не думаю, что STI - правильный выбор для вашей проблемы, так как это больше похоже на отношения «многие ко многим».

Ваш вопрос слишком широк, чтобы дать вам точный ответ.В зависимости от ваших потребностей у вас может быть несколько вариантов.

Например, если Customer / Supplier означает наличие дополнительных данных, было бы лучше сделать их отдельными объектами, связанными с Account.Таким образом, в вашем приложении вы узнаете, является ли Account Customer или Supplier, проверив, существует ли соответствующий связанный объект.Таким образом, вы можете объяснить это как

Account может иметь Customer или Supplier профиль

о чем-то вроде этого, вместо

Account может быть Customer или Supplier

Другое решение будет рассматривать его как простой ACL, где Account является субъектом, а Customer и Supplier - роли.

Трудно дать более подробный ответ на ваш вопрос.

...