Zdá se, že chcete rozlišovat kategorie a témata ve dvou samostatných tabulkách, ale nechat ID obou z nich odkazovat v jiné tabulce likes usnadnit uživatelům, kteří mají rádi kategorii nebo téma.
Co můžete udělat, je vytvořit tabulku superentit s podtypy categories a topics . Automaticky inkrementovaný klíč by byl vygenerován v tabulce superentit a vložen pouze do jedné ze dvou tabulek podtypů (podle toho, zda se jedná o kategorii nebo téma).
Tabulky podtypů odkazují na tuto superentitu prostřednictvím automaticky inkrementovaného pole ve vztahu 1:1.
Tímto způsobem můžete jednoduše propojit tabulku superentit s likes tabulka pouze na základě jednoho sloupce (který může představovat kategorii nebo téma) a žádné id v tabulkách podtypů budou přítomny v obou.
Zde je zjednodušený příklad, jak to můžete modelovat:

Tento model by vám umožnil zachovat vztah mezi kategoriemi a tématy, ale obě entity by byly zobecněny v superentity tabulka.
Další výhodou tohoto modelu je, že můžete abstrahovat běžná pole v tabulkách podtypů do tabulky superentit. Řekněme například, že categories a topics obě obsahovaly pole title a url :tato pole můžete vložit do superentity tabulky, protože jsou společnými atributy jeho podtypů. Do tabulek podtypů vkládejte pouze pole, která jsou specifická pro tabulky podtypů.