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]
ENTITY-ATTRIBUTE
and anENTITY-ATTRIBUTE-VALUE
table as well?fieldName
,fromValue
andtoValue
?