Det verkar som om du vill särskilja kategorier och ämnen i två separata tabeller, men låt id:n för båda refereras i en annan tabell likes för att underlätta för användare att gilla antingen en kategori eller ett ämne.
Det du kan göra är att skapa en superenhetstabell med undertyperna categories och topics . Den automatiskt inkrementerade nyckeln skulle genereras i superentitetstabellen och infogas i endast en av de två undertypstabellerna (baserat på om det är en kategori eller ett ämne).
Undertypstabellerna refererar till denna superentitet via det automatiskt inkrementerade fältet i en 1:1-relation.
På så sätt kan du helt enkelt länka superentitetstabellen till likes tabell bara baserad på en kolumn (som kan representera antingen en kategori eller ett ämne), och inget id i undertypstabellerna kommer att finnas i båda.
Här är ett förenklat exempel på hur du kan modellera detta:

Den här modellen skulle tillåta dig att upprätthålla relationen mellan kategorier och ämnen, men att ha båda enheterna generaliserade i superentity bord.
En annan fördel med denna modell är att du kan abstrahera ut vanliga fält i subtyptabellerna till superentitetstabellen. Säg till exempel att categories och topics båda innehöll fälten title och url :du kan lägga dessa fält i superentity tabell eftersom de är vanliga attribut för dess undertyper. Lägg bara fält som är specifika för undertypstabellerna I undertypstabellerna.