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)?
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.