Я чет не придумал как сделать такую логику в базе что бы Foreign key работал с разными типами. Да и не в этом проблема. Даже с Foreign key при удаление нужно выбирать что делать, удалять или нет — вопрос именно в этом.
В РСУБД так сделать низзя, это попытка натянуть сову на глобус.
Да, даже с FK стоит такой выбор, суть в том, что при правильном проектировании сущностей ты можешь абсолютно спокойно удалять записи, не затронув при этом важную инфу. Я поэтому и спросил более подробно про твой юзкейс