У меня есть таблица с множеством полей, которые являются внешними ключами, ссылающимися на связанную таблицу. Я пишу скрипт на PHP, который будет выполнять запросы БД. Когда я запрашиваю эту таблицу для ее данных, мне нужно знать значения, связанные с этими ключами, а не ключ.
Как большинство людей делают это?
101 способ сделать это - запросить в этой таблице данные, включая внешние ключи, а затем запросить соответствующие таблицы, чтобы получить значение каждого ключа. Это может быть много запросов (~ 10).
Вопрос 1: Я думаю, что мог бы написать 1 запрос с кучей объединений. Это было бы лучше?
Этот подход также требует, чтобы скрипт запроса знал, какие поля таблицы являются внешними ключами. Поскольку у меня есть много подобных таблиц, но все с разными полями, это означает, что писать хорошие универсальные функции сложно. Таблицы MySQL InnoDB допускают внешние ограничения. Я знаю, что база данных настроена правильно.
Вопрос 2: Как насчет идеи запроса таблицы и определения ограничений, а затем сопоставления их с использованием любого процесса, о котором я решу из Вопроса 1. Мне нравится эта идея, но я никогда не вижу ее используется в коде. Заставляет меня думать, что это не очень хорошая идея по какой-то причине. Я бы использовал что-то вроде SHOW CREATE TABLE tbl_name; чтобы найти, какие ограничения / отношения существуют для этой таблицы.
Спасибо за любые предложения или советы.