Рассмотрим таблицы: (->
обозначает отношение, определенное в SQL)
USER (userid, username, imageid->IMAGE.imageid)
EVENT (eventid, userid->USER.userid, description)
IMAGE (imageid, location)
Скажем, у меня есть представление (назовем его vw_UserInfo
), определенное как следующий запрос.
SELECT u.*, i.* FROM users u
INNER JOIN images i ON i.imageid = u.imageid
Знает ли SQL об отношениях между EVENT.userid
и vw_UserInfo.userid
? Я имею в виду, будет ли по-прежнему применяться выигрыш в производительности операции JOIN
в смежных областях? Я полагаю, это может варьироваться в зависимости от того, какую базу данных SQL вы используете.
РЕДАКТИРОВАТЬ: В попытке быть немного яснее. Я спрашиваю, будет
SELECT ui.*, e.* FROM vw_UserInfo ui
INNER JOIN events e ON ui.userid = e.userid
Выгода от внешнего ключа, определенного как
SELECT u.*, i.*, e.* FROM users u
INNER JOIN images i ON i.imageid = u.imageid
INNER JOIN events e ON e.userid = u.userid
будет