имеют «супергруппу» столбцов (в SQL вообще, а не только в postgreSQL), самый простой подход - использовать несколько таблиц.Пример:
Таблица Person может содержать столбцы person_ID, first_name, last_name
Таблица сотрудников может содержать столбцы person_id, отдел, manager_person_id, зарплата
Таблица клиентов может содержать столбцыperson_id, addr, city, state, zip
Таким образом, вы можете объединить их, чтобы делать все, что вам нравится ..
Пример:
select *
from person p
left outer join student s on s.person_id=p.person_id
left outer join employee e on e.person_id=p.person_id
Или любой другой вариантпри разделении данных на разные типы и PERHAPS экономят немного дискового пространства в процессе (например, если большинство «людей» являются «клиентами», им не нужно, чтобы куча данных о сотрудниках перемещалась или имела обнуляемые столбцы)
Вот как обычно я справляюсь с ситуацией такого типа, но без практического примера трудно сказать, что лучше в вашем сценарии.