Часто люди говорят об отношениях 1: 0..1 и называют это 1: 1.В действительности, типичная СУБД не может поддерживать буквальное отношение 1: 1 в любом случае.
Таким образом, я думаю, что здесь справедливо рассмотреть подклассы, даже если это технически требует отношения 1: 0..1, а не буквального понятия 1: 1.
A 1: 0..1 очень полезно, когда у вас есть поля, которые будут одинаковыми среди нескольких сущностей / таблиц.Например, поля контактной информации, такие как адрес, номер телефона, адрес электронной почты и т. Д., Которые могут быть общими для сотрудников и клиентов, можно разбить на объект, созданный исключительно для контактной информации.
Таблица контактов будет содержатьобщая информация, такая как адрес и телефон (ы).
Таким образом, таблица сотрудников содержит информацию о сотрудниках, такую как номер сотрудника, дата найма и так далее.Он также будет содержать ссылку на внешний ключ в таблице контактов для контактной информации сотрудника.
Таблица клиента будет содержать информацию о клиенте, такую как адрес электронной почты, имя их работодателя и, возможно, некоторые демографические данные, такие как пол и / или семейное положение.У клиента также будет ссылка внешнего ключа на таблицу контактов для его контактной информации.
При этом у каждого сотрудника будет контакт, но не у каждого контакта будет сотрудник.Та же концепция будет применяться к клиентам.