Você pode usar a Opção 1, mas sem uma Chave Alternativa substituta adicional.
Em vez disso, estenda a Chave Primária existente (de cada entidade), com um
EntityType coluna (digamos CHAR(1) , isso seria E para eventos, P para Pessoas, D para Produtos). O composto
(EntityId, EntityType) se tornará então a Chave Primária da tabela Entity e os compostos correspondentes nas outras 3 tabelas de subtipos. (O
EntityType é apenas uma tabela de referência auxiliar, com 3 linhas):