Можете да използвате Вариант 1, но без допълнителен сурогатен алтернативен ключ.
Вместо това разширете съществуващия първичен ключ (на всеки обект) с EntityType колона (кажете CHAR(1) , това би било E за събития, P за лица, D за продукти).
Съставът (EntityId, EntityType) тогава ще стане първичен ключ на таблица Entity и съответните съединения в другите 3 таблици с подтипове.
(EntityType е само спомагателна, справочна таблица, с 3 реда):
