I create db with Person, Client, Employee, Manager, Developer. I'm interested what is the best way to put the data in tables. In which cases should programmer unite Client in table hierarchy with EmployeeCategory for next using concept of Table join inheritance (because they have common attributes like firstName, lastName, email..) and in which cases programmer should hold Client table separate from Employee hierarchy (despite that Client has common attributes with Person)?

1 Answer 1


If you have common attributes across non-exclusive tables, you should consider normalizing your tables.

It appears that Client, Employee, Manager, and Developer are all sub-types of the Person entity. As such any attributes common to all types should be in the person entity, and attributes for the other entities should depend only on that sub-type.

I would expect Managers and Developers are often or always Employees.

Programmers while need to join the tables need to access the data required for their use case. It may be appropriate to select from only from the subtype tables, or only from the Person table.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.