Насколько я мог выяснить, многие СУБД (например, mysql, postgres, mssql) используют комбинации fk и pk только для ограничения изменений в данных, но они редко используются для автоматического выбора столбцов для объединения (как в естественном объединении с именами). Почему это? Если вы уже определили связь между двумя таблицами с помощью pk / fk, почему база данных не может понять, что, если я присоединяюсь к этим таблицам, я хочу присоединить их к столбцам pk / fk?
РЕДАКТИРОВАТЬ: уточнить это немного:
Предположим, у меня есть таблица1 и таблица2. Таблица 1 имеет внешний ключ в столбце а, который ссылается на первичный ключ в таблице 2, столбец b. Теперь, если я присоединюсь к этим таблицам, мне придется сделать что-то вроде этого:
SELECT * FROM table1
JOIN table2 ON table1.a = table2.b
Тем не менее, я уже определил с помощью моих ключей, что table1.a ссылается на table2.b, поэтому мне кажется, что не должно быть сложным заставить систему СУБД автоматически использовать table1.a и table2.b в качестве столбцов соединения, такой, что можно просто использовать:
SELECT * FROM table1
AUTO JOIN table2
Однако многие СУБД, похоже, не реализуют нечто подобное.