Я думаю, что важно (и для нас, и для вас) знать цель добавления дополнительного внешнего ключа?
В зависимости от конкретной проблемы, которую вы пытаетесь решить (проверка данных при вводе, каскадное удаление и т. Д.) И гибкости, которую вы имеете для их решения (способность или неспособность изменить структуру данных), вы можете реализоватьлогические ограничения через триггеры.Мы используем этот подход в тех случаях, когда нам просто нужно перехватить граничные условия, которые должны происходить редко, если вообще когда-либо возникали.
Если триггеров недостаточно для вашей ситуации и требуются внешние ключи, тогда об единственной опции, которая у вас естьслева (без перепроектирования всех таблиц) - сохранить LIST_C.A в LIST_D, а затем создать FKey обратно в LIST_B.
Другой вариант - перепроектировать его так, чтобы у вас были промежуточные таблицы, содержащие соответствующие ссылки.между всеми таблицами, но это не звучит так, как это желательно.