O uso de uma tabela mestre para colunas compartilhadas é uma boa prática para um banco de dados inteiro?

Abaixo, explico um design básico para um banco de dados no qual estou trabalhando. Como não sou um DB, estou preocupado se estou em uma boa ou má pista, então eu queria colocar isso na pilha para obter alguns conselhos. Não consegui encontrar uma discussão semelhante que se encaixasse no meu design.

No meu banco de dados, toda tabela é considerada uma entidade. Uma entidade pode ser uma conta de cliente, uma pessoa, um usuário, um conjunto de informações sobre funcionários, informações sobre contratados, caminhões, aviões, produtos, tickets de suporte etc. etc. Aqui estão minhas entidades atuais (Tabelas) ...

PessoasComercialContasAccountUsersEndereçosinformação do empregadoInformações do contratado

E para armazenar informações sobre essas entidades, tenho duas tabelas:

Entity Tables
-EntityType
-> EntityTypeID (INT)
-Entities
-> EntityID (BIGINT)
-> EnitityType (INT) : foreign key

Todas as tabelas que criei têm uma chave primária gerada automaticamente e uma chave estrangeira em uma coluna entityID para a tabela de entidades.

Na tabela de entidades, tenho alguns campos compartilhados como,

Data CriadaData modificadaUser_CreatedUser_ModifiedEsta deletadoCanUIDelete

Eu uso gatilhos em todas as tabelas para criar automaticamente sua entrada de entidade com o tipo de entidade correto nas inserções. E os gatilhos de atualização atualizam a data LastModified.

Do ponto de vista da camada de aplicativo, tudo o que o código precisa fazer é se preocupar com as entidades individuais (exceto nos campos USER_Modified / User_Created "ele atualiza isso" ao ingressar no ID da entidade)

Agora, o motivo da tabela de entidades está abaixo da linha que pretendo ter um modelo EAV, para que cada tipo de entidade possa ser estendido com campos personalizados. Também serve como um local decente para armazenar metadados sobre as entidades (como os campos criados / modificados).

Eu sou apenas novo no design do DB e quero uma segunda opinião.

questionAnswers(2)

yourAnswerToTheQuestion