My co-worker is designing a schema where most entities (like contacts, quotes, tasks) inherit from an "entity" table, which keeps track of things like which tenant owns the entity, and chagnes to the entity. This is similar to VTiger CRM's schema.
Is this a terrible idea? What should I tell him the problems are?
Is there a name for this pattern?
ENTITY id PK tenant FK TENANT version draft deleted ENTITYCHANGE entityId PK FK ENTITY version PK FK ENTITY createdBy createdAt fieldName fromValue toValue CONTACT id PK FK ENTITY name [other contact fields] QUOTE id PK FK ENTITY contactId FK CONTACT [other quote fields]