можем ли мы создать внешний ключ, основанный на уникальном ограничении со значением null?
Синтаксис позволяет нам создавать внешний ключ, который ссылается на уникальный ключ. Тем не менее, я думаю, что это будет если не совсем плохая практика, то, по крайней мере, своеобразная практика делать это. Первичные ключи являются нормой.
Если да, то как это возможно?
Это возможно, поскольку столбец внешнего ключа может быть необязательным. Внешний ключ ограничивает нас для ввода значения в дочернем столбце, который присутствует в указанном столбце первичного ключа. Однако, если мы поместим ноль в дочерний столбец, внешний ключ не будет применен. Это верно, независимо от того, ссылается ли внешний ключ на первичный или уникальный ключ.
Очевидно, что если дочерний столбец является обязательным (определяется как NOT NULL), тогда мы не можем поместить в него нуль, и действительно не имеет значения, является ли указанный столбец уникальным ключом или первичным ключом.