Ответ
Да, может. Ограничение FOREIGN KEY обеспечивает ссылочную целостность, но не требует уникальности значений в столбце. Его основная задача — гарантировать, что каждое значение в этом столбце существует в связанном первичном (PRIMARY KEY) или уникальном (UNIQUE) ключе родительской таблицы.
Почему это допустимо? Это отражает отношения "один ко многим". Например, один клиент может иметь множество заказов.
Пример (SQL):
-- Родительская таблица
CREATE TABLE customers (
customer_id INT PRIMARY KEY,
name VARCHAR(100)
);
-- Дочерняя таблица
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
-- В таблице `orders` множество строк могут иметь одинаковый `customer_id`.
Ключевой момент: FOREIGN KEY ограничивает допустимые значения, но не их количество.