Один из моих коллег разработал схему таблиц, и в одной из таблиц столбец может ссылаться на первичные ключи в разных таблицах, зависит от значения другого столбца. Я знаю, что это по-другому неправильно, но я не могу найти теорию для поддержки меня. Его схема так:Это неверно: столбец может ссылаться на первичные ключи в разных таблицах, зависит от значения другого столбца?
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 не позволяет этого.
Может кто-нибудь узнать, какой принцип или правила нарушены здесь?
Он действительно разработал для этого правильную схему, или он просто сел и придумал несколько таблиц? –