Normalizing a person

Status quo for a “person” is separate tables for patients and users. We currently do not support Patient Contacts or Related Persons. To support those, should we consider normalizing a “person” entity? Ideally, this would consolidate the elements of a FHIR Person object into a generic table while keeping secondary tables to manage the extra attributes required for more specific uses.