From that question:

Summarizing:
- My CRUDs are: customers, employees and branches.
Customers andEmployees are associated with onePerson, oneIndividual(fields related to the person itself) and oneUser(for login purposes). SoIndividuals andUsers are always related to oneCustomerorEmployeeperson.Branches are associated with onePersonand oneCompany(fields related to the corporate person). SoCompanys are always related to oneBranchperson. They didn't have an user because they're affiliated to the company that this database stands for - it's their employees who can authenticate into the app.- An
Employeebelongs to oneBranch. ABranchhas zero or manyEmployees. (yeah, diagram is incorrect, sorry!) - Currently I'm using a single bit to diff
Employeerole - I've employees with operational and administrative rights. Roles permissions goes in the code itself, and here you can realize that customers also have their own role... Any suggestions to implement a better (and simple) way to manage that roles for both customers and employees?
How should I change that wrong 3NF structure to achieve a well designed single table inheritance for a better use of MVC pattern?
I tried to simplify a bit, and now I accomplished this new structure:

Can I still improve it? Where? How would you model that?