Ваша модель показывает, что подклассы Buyer
и Seller
являются непересекающимися специализациями сущности User
(продавец не может быть покупателем, а покупатель не может быть продавцом), обозначенной кружком «D». В зависимости от вашей ситуации, вы могли бы оспаривать этот дизайн (кто-то может продать, купив в прошлом?).
Каждый из этих объектов имеет разные атрибуты, не общие друг с другом, кроме общие для User
.
Существуют различные способы моделирования этого, но вам может понадобиться, например, таблица Buyer
и таблица Seller
. Тогда обе эти таблицы будут содержать внешний ключ к таблице User
.
Менее нормализованная альтернатива - иметь таблицу User
, которая содержит атрибуты обоих подклассов, но тогда некоторые из атрибутов будут NULL, если они не применимы. Тогда их можно будет различить по атрибуту Role
.
Рекомендуемое чтение: Нормализация базы данных