To normalize or not to normalize for few distinct values
If you are implementing party-role-relationship model or part of it, having party_type as a separate entity is very important. You may have many more tables with foreign key to party_type (for instance, to limit applicability of certain roles to particular party type[s], or to enforce relationships between different types of parties, etc).  Using check constraints in any form (including enums) in such cases would hide the logic and make maintenance harder .