Один из моих коллег разработал схему таблицы, и в одной из таблиц столбец может ссылаться на первичные ключи в разных таблицах в зависимости от значения другого столбца.Я знаю, что это по-другому неправильно, но не могу найти теорию, чтобы поддержать меня.Его схема выглядит так:
table video: (id, name, ...)
table audio:(id, name, ...)
table review_item( item_type, item_id, reason, ...)
, когда item_type='V'
, тогда item_id является идентификатором таблицы видео, а когда item_type='A'
, то item_id является идентификатором таблицы видео
Сочетание (item_type
, item_id
) уникален, но на самом деле это вообще не внешний ключ, его нельзя определить как внешний ключ, так как он не указывает на одну таблицу.Синтаксис DDL этого не позволяет.
Может кто-нибудь узнать, какие принципы или правила здесь нарушены?