Как ссылаться на поля в другой таблице
У меня есть две таблицы с такими полями:
Product: Id, name,price
User: Id, name,address
Я хочу сделать 3 таблицу Orders, которая будет ссылаться на столбы из других таблиц:
name(product), price, name(user), address, date
Как мне это сделать? Если использовать внешний ключ, то его вроде только к первичному можно, то есть, остальные столбцы мне не взять.
Ответы (1 шт):
Явное непонимание сути происходящего.
Есть внешние ключи. Они устанавливают правила контроля. Руководствуясь этими правилами, сервер не даёт установить ссылку на несуществующее значение. Как правило, все СУБД требуют, чтобы внешний ключ ссылался на уникальное поле - для исключения неоднозначности ссылки. Это происходит на этапе сохранения данных в таблицах.
Есть связывание таблиц в запросах. При этом в тексте запроса указывается выражение, при положительном (TRUE) значении которого записи из таблиц объединяются. Выражение может, но не обязано, соответствовать выражению внешнего ключа, когда он существует. Это происходит на этапе обработки (например, при получении) уже хранящихся в таблицах данных.